微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

整理数据帧,每行一个参数

如何解决整理数据帧,每行一个参数

我有一个这样的数据框:

d = {'Date': ['2020-10-09','2020-10-09','2020-10-10','2020-10-11','2020-10-11'],'ID': ['T1','T2','T3','T1','T3'],'Value': [13,12,11,14,15,16,20,21,22]}
     
df = pd.DataFrame(data=d)
df

    Date    ID  Value
0   2020-10-09  T1  13
1   2020-10-09  T2  12
2   2020-10-09  T3  11
3   2020-10-10  T1  14
4   2020-10-10  T2  15
5   2020-10-10  T3  16
6   2020-10-11  T1  20
7   2020-10-11  T2  21
8   2020-10-11  T3  22

我正在尝试获取

d = {'Date': ['2020-10-09','Value T1': ['13','14','20'],'Value T2': ['12','15','21'],'Value T3': ['11','22']}
     
df = pd.DataFrame(data=d)
df


Date            Value T1    Value T2    Value T3
0   2020-10-09        13          12          11
1   2020-10-10        14          15          15
2   2020-10-11        20          21          22

我尝试使用数据透视,但出现错误: “索引包含重复的条目,无法重塑”

解决方法

使用pd.pivot_table,如下所示,

pdf = pd.pivot_table(
    df,values=['Value'],index=['Date'],columns=['ID'],aggfunc='first'
).reset_index(drop=False)

pdf.columns = ['Date',"Value T1","Value T2","Value T3"]


    Date    Value T1    Value T2    Value T3
0   2020-10-09  13  12  11
1   2020-10-10  14  15  16
2   2020-10-11  20  21  22

请注意,这里首先是aggfunc。这意味着,如果给定日期的给定ID有多个值,则将在数据框中获得第一个值。您可以根据需要将其更改为min / max / last

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。