python-3.x - 如何将列的值设置为数据框中的列?

标签 python-3.x pandas

我正在寻找更好的代码来转换我的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/

相关文章:

python - 我可以使用 k 均值聚类对各种空间模式进行分类吗?

python - 获取每行列表中最常用的单词

python - 如何根据索引进行计算?

python - 向 Pandas DataFrame 箱线图添加图例

python - 按顺序计算每组 pandas

python-3.x - 具有多个下拉输入不工作的 Plotly 破折号图

python - 转换为字符串会引发错误吗?

python - 打印数据框名称

python - Pandas - Python - 如何减去两个不同的日期列

ms-word - 尝试在Python中导入docx