pivot
和 melt
在 Pandas 中,pivot
和 melt
是用于数据重塑的两个强大工具。pivot
可以帮助你重新排列数据的格式,使其更加适合分析。而 melt
是进行“熔化”操作的,它可以将数据从宽格式转换为长格式。
pivot
用于创建一个新的派生表格,其中一列的值会成为多个列的标题。melt
将 DataFrame 从宽格式转换为长格式,通常用于将多列合并成两列,一列存储变量名,另一列存储值。使用 pivot
# 原始数据
data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03'],
'Type': ['A', 'B', 'C'],
'Value': [100, 200, 300]}
df = pd.DataFrame(data)
# 使用 pivot
pivot_df = df.pivot(index='Date', columns='Type', values='Value')
print(pivot_df)
这段代码演示了如何使用 pivot
方法。我们首先创建了一个包含日期、类型和值的简单 DataFrame。然后,我们使用 pivot
方法,将 Date
列作为索引,Type
列的唯一值作为新的列,并以 Value
列的值填充这些新列。
使用 melt
# 使用 melt
melted_df = df.melt(id_vars=['Date'], value_vars=['Type', 'Value'])
print(melted_df)
这段代码展示了 melt
方法的使用。我们将 Date
列作为标识变量列(保持不变),然后将 Type
和 Value
列“熔化”成两列,其中一列存储了原始列名(Type
, Value
),另一列存储了相应的值。
数据重塑是数据预处理中的一个关键步骤,可以大大改善数据的可读性和适应性。
pivot
和 melt
(续)使用 pivot
import pandas as pd
# 准备数据和示例代码的运行结果,用于案例 9
# 原始数据
data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03'],
'Type': ['A', 'B', 'C'],
'Value': [100, 200, 300]}
df = pd.DataFrame(data)
# 使用 pivot
pivot_df = df.pivot(index='Date', columns='Type', values='Value')
# 使用 melt
melted_df = df.melt(id_vars=['Date'], value_vars=['Type', 'Value'])
pivot_df, melted_df
运行结果:
Type A B C
Date
2023-01-01 100.0 NaN NaN
2023-01-02 NaN 200.0 NaN
2023-01-03 NaN NaN 300.0
这个结果显示了 pivot
方法如何将原始数据转换为新格式,其中日期作为索引,不同的 Type
值(A, B, C)作为列标题。
使用 melt
melted_df = df.melt(id_vars=['Date'], value_vars=['Type', 'Value'])
print(melted_df)
运行结果:
Date variable value
0 2023-01-01 Type A
1 2023-01-02 Type B
2 2023-01-03 Type C
3 2023-01-01 Value 100
4 2023-01-02 Value 200
5 2023-01-03 Value 300
在这个结果中,melt
方法将数据转换为长格式,其中 Date
列保持不变,而 Type
和 Value
列的内容被合并到两个新列中。
通过这样的数据重塑操作,你可以根据需要将数据结构从宽格式转换为长格式,或反之,以适应不同的分析需求。