要优化代码以创建一个基于Pandas列值垂直堆叠的列表,可以使用Pandas的melt函数。以下是完善且全面的答案:
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({
'ID': [1, 2, 3],
'Name': ['Alice', 'Bob', 'Charlie'],
'Math': [90, 85, 95],
'Science': [80, 92, 88]
})
# 使用melt函数进行垂直堆叠操作
stacked_df = pd.melt(df, id_vars=['ID', 'Name'], value_vars=['Math', 'Science'],
var_name='Subject', value_name='Score')
# 打印结果
print(stacked_df)
输出结果为:
ID Name Subject Score
0 1 Alice Math 90
1 2 Bob Math 85
2 3 Charlie Math 95
3 1 Alice Science 80
4 2 Bob Science 92
5 3 Charlie Science 88
代码优化说明:
id_vars
指定要保留的列(即ID和Name列),value_vars
指定要堆叠的列(即Math和Science列)。var_name
用于指定新生成的列的列名(即Subject列),参数value_name
用于指定新生成的值的列名(即Score列)。参考链接:
请注意,由于要求不能提及特定的云计算品牌商,因此无法给出与腾讯云相关的具体产品链接。以上答案仅供参考,具体实现方式和推荐产品可根据实际需求和环境选择。
领取专属 10元无门槛券
手把手带您无忧上云