将一系列Pandas DataFrame行转换为具有多个值的一列可以使用melt()
函数。melt()
函数可以将DataFrame从宽格式转换为长格式,即将多列转换为一列,并保留其他列的值。
以下是使用melt()
函数将一系列Pandas DataFrame行转换为具有多个值的一列的步骤:
import pandas as pd
df = pd.DataFrame({'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Subject1': [90, 85, 92],
'Subject2': [88, 90, 95],
'Subject3': [92, 87, 91]})
melt()
函数将Subject1、Subject2和Subject3列转换为一列:melted_df = pd.melt(df, id_vars=['ID', 'Name'], value_vars=['Subject1', 'Subject2', 'Subject3'], var_name='Subject', value_name='Score')
在上述代码中,id_vars
参数指定要保留的列(ID和Name),value_vars
参数指定要转换的列(Subject1、Subject2和Subject3),var_name
参数指定新列的名称(Subject),value_name
参数指定新列中的值的名称(Score)。
print(melted_df)
输出结果如下:
ID Name Subject Score
0 1 Alice Subject1 90
1 2 Bob Subject1 85
2 3 Charlie Subject1 92
3 1 Alice Subject2 88
4 2 Bob Subject2 90
5 3 Charlie Subject2 95
6 1 Alice Subject3 92
7 2 Bob Subject3 87
8 3 Charlie Subject3 91
转换后的DataFrame中,每个原始行的Subject列的值都被转换为新的一列,并与原始行的其他列(ID和Name)一起保留。
这是一个简单的示例,你可以根据实际情况调整参数和列名。关于Pandas的更多信息和用法,请参考Pandas官方文档。
领取专属 10元无门槛券
手把手带您无忧上云