dataframe的多级索引,透视表,数据透视表,时间序列分析,缺失值处理,分组和聚合,合并和连接。这七个用法都举几个例子出来
时间: 2024-04-24 22:25:58 浏览: 213
左手pandas右手Python,带你学习数据透视表
当然,下面是关于 DataFrame 的多级索引、透视表、数据透视表、时间序列分析、缺失值处理、分组和聚合以及合并和连接的几个例子:
1. 多级索引:
```python
import pandas as pd
# 创建一个带有多级索引的 DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]}
index = pd.MultiIndex.from_tuples([('Group1', 'Subgroup1'), ('Group1', 'Subgroup2'),
('Group2', 'Subgroup1'), ('Group2', 'Subgroup2')])
df = pd.DataFrame(data, index=index)
# 访问多级索引的数据
print(df.loc['Group1']) # 获取 Group1 的所有数据
print(df.loc[('Group1', 'Subgroup1')]) # 获取 Group1 的 Subgroup1 的数据
```
2. 透视表:
```python
import pandas as pd
# 创建一个包含销售数据的 DataFrame
data = {'Region': ['East', 'West', 'North', 'South', 'East', 'West', 'North', 'South'],
'Product': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'Sales': [100, 200, 150, 250, 300, 400, 350, 450]}
df = pd.DataFrame(data)
# 创建透视表,按照 Region 和 Product 进行分组,并计算 Sales 的平均值
pivot_table = df.pivot_table(index='Region', columns='Product', values='Sales', aggfunc='mean')
print(pivot_table)
```
3. 数据透视表:
```python
import pandas as pd
# 创建一个包含销售数据的 DataFrame
data = {'Region': ['East', 'West', 'North', 'South', 'East', 'West', 'North', 'South'],
'Product': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'Sales': [100, 200, 150, 250, 300, 400, 350, 450]}
df = pd.DataFrame(data)
# 创建数据透视表,按照 Region 和 Product 进行分组,并计算 Sales 的总和
pivot_table = pd.pivot_table(df, values='Sales', index='Region', columns='Product', aggfunc='sum')
print(pivot_table)
```
4. 时间序列分析:
```python
import pandas as pd
# 创建一个时间序列的 DataFrame
date_range = pd.date_range('2022-01-01', periods=10, freq='D')
df = pd.DataFrame({'Date': date_range, 'Value': range(10)})
# 将 Date 列设置为索引,并按月份进行汇总
df.set_index('Date', inplace=True)
monthly_data = df.resample('M').sum()
print(monthly_data)
```
5. 缺失值处理:
```python
import pandas as pd
import numpy as np
# 创建一个包含缺失值的 DataFrame
data = {'A': [1, np.nan, 3, 4],
'B': [5, 6, np.nan, 8],
'C': [9, 10, 11, np.nan]}
df = pd.DataFrame(data)
# 删除包含缺失值的行
df.dropna(inplace=True)
print(df)
# 使用均值填充缺失值
df.fillna(df.mean(), inplace=True)
print(df)
```
6. 分组和聚合:
```python
import pandas as pd
# 创建一个包含销售数据的 DataFrame
data = {'Region': ['East', 'West', 'North', 'South', 'East', 'West', 'North', 'South'],
'Product': ['A', 'A', 'B', 'B', 'A', 'A', 'B', 'B'],
'Sales': [100, 200, 150, 250, 300, 400, 350, 450]}
df = pd.DataFrame(data)
# 按照 Region 进行分组,并计算每个分组的平均销售额
grouped_data = df.groupby('Region')['Sales'].mean()
print(grouped_data)
# 按照 Region 和 Product 进行分组,并计算每个分组的总销售额
grouped_data = df.groupby(['Region', 'Product'])['Sales'].sum()
print(grouped_data)
```
7. 合并和连接:
```python
import pandas as pd
# 创建两个 DataFrame
data1 = {'A': [1, 2, 3],
'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)
data2 = {'C': [7, 8, 9],
'D': [10, 11, 12]}
df2 = pd.DataFrame(data2)
# 合并两个 DataFrame,按照索引进行连接
merged_df = pd.merge(df1, df2, left_index=True, right_index=True)
print(merged_df)
# 沿着列的方向连接两个 DataFrame
concatenated_df = pd.concat([df1, df2], axis=1)
print(concatenated_df)
```
希望这些例子能够帮助你更好地理解 DataFrame 的高级用法!如果还有其他问题,请随时提问。
阅读全文