我正在寻找更好的代码来转换我的DataFrame
。
我的 DataFrame
看起来像这样:
Period LASTDATE PRICE VAT SUM CLIENT
0 2018Q1 31/3/2018 1 2 3 NAME
1 2018Q2 30/6/2018 2 2 4 NAME
2 2018Q3 30/9/2018 3 3 6 NAME
3 2018Q4 31/12/2018 4 4 8 NAME
我想实现这个:
2018Q1 2018Q2 2018Q3 2018Q4 LASTDATE SUM
NAME 3 4 6 8 31/12/2018 21
到目前为止,我从 DataFrame
中拆分了 Period
列,并将其设为标题。我相信有更好的方法来编码。我搜索了 pandas 的文档,我相信 set_index()
可能对我有帮助。有什么想法吗?
最佳答案
通过 DataFrame.set_index
创建系列
对于按 Period
进行索引,按 Series.to_frame
转换为一列 DataFrame
,转置为 DataFrame.T
最后通过 DataFrame.assign
添加新列:
df1 = (df.set_index('Period')['SUM']
.to_frame()
.T
.rename_axis(None, axis=1)
.assign(LASTDATE = df['LASTDATE'].iat[-1], SUM = df['SUM'].sum()))
print (df1)
2018Q1 2018Q2 2018Q3 2018Q4 LASTDATE SUM
SUM 3 4 6 8 31/12/2018 21
关于python-3.x - 如何将列的值设置为数据框中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969420/