要将 Pandas DataFrame 的多列值合并成一列,可使用“Melt”方法或“Concatenate”方法实现。
Melt方法
Melt 方法是一种 Pandas 数据清洗方式,可将 DataFrame 中的多列值整合为新的一列,操作步骤如下:
- 导入 Pandas 库:
import pandas as pd
- 创建 DataFrame:例如,如下所示:
df = pd.DataFrame({'name': ['Alice','Bob'],
'age': [25, 30],
'salary': [5000, 8000]})
- 使用 Melt 方法:
melt_df = pd.melt(df,
id_vars=['name'],
value_vars=['age', 'salary'],
var_name='variable',
value_name='value')
上述代码中,参数id_vars
指定需要保留的列,参数value_vars
指定需要合并的列,参数var_name
指定新列名,参数value_name
指定新列的值。执行上述代码,将生成一个新的 DataFrame melt_df
:
name variable value
0 Alice age 25
1 Bob age 30
2 Alice salary 5000
3 Bob salary 8000
此时,DataFrame melt_df
中包含“name”、“variable”和“value”三列,其中“name”列保持不变,“variable”对应的是合并前的列名,而“value”对应的是合并后的值。
Concatenate方法
另一种将多列值合并成一列的方法是使用 Pandas 的 concat 方法,示例如下:
- 导入 Pandas 库:
import pandas as pd
- 创建 DataFrame:例如,如下所示:
df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3', 'A4'],
'B': ['B1', 'B2', 'B3', 'B4']})
df2 = pd.DataFrame({'C': ['C1', 'C2', 'C3', 'C4'],
'D': ['D1', 'D2', 'D3', 'D4']})
- 调用 Concat 方法:
concat_df = pd.concat([df1['A'], df1['B'], df2['C'], df2['D']])
上述代码进行拼接操作时,不需要指定拼接的轴 axis,因为默认拼接的轴是0 (即行)。执行上述代码后,将生成一个新的 DataFrame concat_df
,其中“A”、“B”、“C”和“D”列被合并成了一列:
0 A1
1 A2
2 A3
3 A4
0 B1
1 B2
2 B3
3 B4
0 C1
1 C2
2 C3
3 C4
0 D1
1 D2
2 D3
3 D4
dtype: object
可以看到,生成的新 DataFrame 中包含一列,名称为 0,包含 A、B、C、D 四个列中的所有数据。
以上是 Pandas 实现将多列值合并成一列的两种方法,可根据实际需求选择操作方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas多列值合并成一列的实现 - Python技术站