当前位置: 首页 > 知识库问答 >
问题:

在Python中将某些行转换为列[duplicate]

龙毅
2023-03-14

所以我的数据集有一些信息,按业务n日期如下:

Business    Date    Value
a         1/1/2017   127
a         2/1/2017   89
b         2/1/2017   122
a         1/1/2018   555
a         2/1/2018   455

我需要以下格式的数据:我如何转换它。我不想在我的输出数据集中使用多级

Business    1/1/2017  2/1/2017 1/1/2018  2/1/2018
 a           127         89     555        455
 b           N/A        122      N/A       N/A

我尝试了以下语法:

df = df.set_index(['Business','Date'])['Value'].unstack()
df=df.pivot(index='Business', columns='Date', values='Value')

我得到的结果如下:

Date    1/1/2017    2/1/2017    1/1/2018    2/1/2018
Business
 a        454         5555        555         444 
 b        -            444         -           -

当我打印列时,它不会将LOB显示为列。我的最终数据帧还应该包括业务,日期字段作为列,以便我可以加入这个数据帧与另一个业务数据帧

共有2个答案

郭远
2023-03-14

使用枢轴:

df.pivot(index='Business', columns='Date', values='Value')
胡意致
2023-03-14

你离你想要的很近。您只需要删除自定义索引并将其替换为默认索引。

pivoted = df.pivot(index='Business', columns='Date', values='Value')\
            .reset_index()
pivoted.columns.name=None
print(pivoted)
#  Business  1/1/2017  1/1/2018  2/1/201  2/1/2017
#0        a     127.0     555.0    455.0      99.0
#1        b       NaN       NaN      NaN     122.0
 类似资料:
  • 问题内容: 我的数据集具有n个日期的位置信息。问题在于每个日期实际上是一个不同的列标题。例如,CSV看起来像 我想要的是它看起来像 问题是我不知道列中有多少个日期(尽管我知道它们总是以名字开头) 问题答案: 从v0.20开始,melt是一阶函数,你现在可以使用

  • 问题内容: 我有以下Python pandas数据框: 我想要: 我看过pivot(),pivot_table(),Transpose和unstack(),它们似乎都没有给我。熊猫新手,所以所有帮助表示赞赏。 问题答案: 您需要通过转置: 如果需要重命名列,则有点复杂: 另一个更快的解决方案是使用: 时间 :

  • 我是数据科学的初学者,我正在尝试使用Pandas来旋转此数据框架: 所以它变成这样:(标签应该变成列,文件路径变成行。) “标签”列是一组或一类文件路径。我想把它转换成这样一种方式,它适合这个函数:tf。Keras.preprocessing.image.flow_from_dataframe 提前感谢所有帮助我的人。

  • 问题内容: 我有以下数据框: 我要这样 堆叠/堆叠似乎不起作用。 问题答案: 您正在寻找: 以及是否要重新排列列:

  • 问题内容: 假设我a在Python中有一个列表,其条目方便地映射到字典。每个偶数元素代表字典的键,后面的奇数元素是值 例如, 我想将其转换为字典b, 语法上最干净的方法是什么? 问题答案: 如果很大,则可能需要执行以下操作,而不会像上面那样创建任何临时列表。 在Python 3中,您也可以使用理解,但具有讽刺意味的是,我认为最简单的方法是使用,通常是代码味道。 因此,尽管EOL在注释中指出,该方法

  • 我正在尝试将列表转换为元组。 Google上的大多数解决方案提供以下代码: 但是,当我运行代码时,它会产生一条错误消息: TypeError:“tuple”对象不可调用 我如何解决这个问题?