1. 创建DataFrame
可以通过传递一个由等长列表或NumPy数组组成的字典来创建DataFrame。pandas会默认使用字典键作为列名,将列表或数组的值赋给相应的列。
```python
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)
```
输出结果:
```
name age gender
0 Alice 25 F
1 Bob 30 M
2 Charlie 35 M
3 David 40 M
```
2. 读取DataFrame
pandas支持读取多种数据格式的DataFrame,如CSV、Excel、SQL等。
```python
import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv')
print(df.head())
# 读取Excel文件
df = pd.read_excel('data.xlsx')
print(df.head())
# 读取SQL数据
import sqlite3
conn = sqlite3.connect('database.db')
df = pd.read_sql_query('SELECT * FROM table_name', conn)
print(df.head())
```
3. 查看DataFrame数据
pandas提供了许多方法来查看DataFrame的数据,如头部、尾部、行数、列数、数据类型等。
```python
import pandas as pd
df = pd.read_csv('data.csv')
# 查看头部数据,默认5行
print(df.head())
# 查看尾部数据,默认5行
print(df.tail())
# 查看行数和列数
print(df.shape)
# 查看数据类型
print(df.dtypes)
# 查看列名
print(df.columns)
```
4. 筛选DataFrame数据
pandas提供了多种方法来筛选DataFrame数据,如基于行、列、条件等。
```python
import pandas as pd
df = pd.read_csv('data.csv')
# 基于行和列筛选数据
print(df.loc[2:4, ['name', 'age']])
# 基于条件筛选数据
print(df[df['gender'] == 'M'])
# 多重条件筛选
print(df[(df['gender'] == 'M') & (df['age'] > 35)])
```
5. 操作DataFrame数据
pandas提供了多种方法来操作DataFrame的数据,如增加、删除、修改等。
```python
import pandas as pd
df = pd.read_csv('data.csv')
# 增加一列数据
df['salary'] = [3000, 4000, 5000, 6000]
print(df)
# 删除一列数据
df = df.drop(['salary'], axis=1)
print(df)
# 修改一行数据
df.loc[0, 'age'] = 26
print(df)
```
6. 分组操作
pandas提供了分组操作来对DataFrame数据进行分组统计计算。
```python
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M'],
'salary': [3000, 4000, 5000, 6000]}
df = pd.DataFrame(data)
# 按照性别分组计算平均薪资
print(df.groupby('gender')['salary'].mean())
# 按照性别和年龄分组计算平均薪资
print(df.groupby(['gender', 'age'])['salary'].mean())
```
7. 合并操作
pandas提供了多种方法来合并不同的DataFrame数据。
```python
import pandas as pd
data1 = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'gender': ['F', 'M', 'M', 'M']}
df1 = pd.DataFrame(data1)
data2 = {'name': ['Alice', 'Bob', 'Eva', 'Frank'],
'salary': [3000, 4000, 5000, 6000]}
df2 = pd.DataFrame(data2)
# 按照姓名合并两个DataFrame
print(pd.merge(df1, df2, on='name'))
```