如何解决整理数据帧,每行一个参数
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 举报,一经查实,本站将立刻删除。