请看下面的完整攻略。
Python使用Pandas库常见操作详解
Pandas是一个数据处理库,它提供了简化数据操作的工具和方法。本文将详细讲解Pandas库常见操作,包括如何创建DataFrame对象、读取数据、选择和过滤数据、排序等。
创建DataFrame对象
DataFrame是Pandas中最基本的对象之一,它是一个二维的、类似于表格的数据结构。下面是创建DataFrame对象的两种常见方法。
方法一:使用字典创建DataFrame对象
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)
输出结果:
name age sex
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
方法二:使用列表创建DataFrame对象
import pandas as pd
data = [['Alice', 25, 'F'],
['Bob', 30, 'M'],
['Charlie', 35, 'M'],
['David', 40, 'M']]
columns = ['name', 'age', 'sex']
df = pd.DataFrame(data, columns=columns)
print(df)
输出结果:
name age sex
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
读取数据
在Pandas中,可以很方便地读取多种格式的数据文件,例如csv、excel、json、sql等等。这里以读取csv格式的文件为例。
import pandas as pd
df = pd.read_csv('data.csv')
print(df)
其中,data.csv
是保存了数据的csv文件。读取该文件后,可以对数据进行进一步的操作。
选择和过滤数据
Pandas提供了多种方法来选择和过滤数据,包括使用列名、使用行号、使用判断条件等等。
使用列名选择数据
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 选择单列数据
print(df['name'])
print(df[['name', 'age']])
输出结果:
0 Alice
1 Bob
2 Charlie
3 David
Name: name, dtype: object
name age
0 Alice 25
1 Bob 30
2 Charlie 35
3 David 40
使用行号选择数据
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 选择单行数据
print(df.iloc[0])
print(df.iloc[[0, 2]])
# 选择行/列子集
print(df.iloc[0:2, 1:3])
输出结果:
name Alice
age 25
sex F
Name: 0, dtype: object
name age sex
0 Alice 25 F
2 Charlie 35 M
age sex
0 25 F
1 30 M
使用判断条件选择数据
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 使用判断条件选择数据
print(df[df['age'] > 30])
print(df[(df['age'] > 30) & (df['sex'] == 'M')])
输出结果:
name age sex
2 Charlie 35 M
3 David 40 M
name age sex
3 David 40 M
排序
Pandas提供了多种方法来对数据进行排序,包括按列排序、按行排序、按多列排序等等。
按列排序
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 按照age列升序排序
print(df.sort_values(by='age'))
输出结果:
name age sex
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
按行排序
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'sex': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
# 按照行索引升序排序
print(df.sort_index())
输出结果:
name age sex
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
按多列排序
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'score': [85, 90, 80, 95]}
df = pd.DataFrame(data)
# 按照age列升序、score列降序排列
print(df.sort_values(by=['age', 'score'], ascending=[True, False]))
输出结果:
name age score
0 Alice 25 85
1 Bob 30 90
2 Charlie 35 80
3 David 40 95
这里仅仅介绍了Pandas库的一些基本操作,如果想要更深入了解,可以参考Pandas官方文档。