我有以下Dataframe:
Name rollNumber external_roll_number testDate marks
0 John 34 234 2021-04-28 15
1 John 34 234 2021-03-28 25
我想把它转换成这样:
Name rollNumber external_roll_number testMonth marks testMonth marks
0 John 34 234 April 15 March 25
如果上述不可能,那么我至少希望它是这样的:
Name rollNumber external_roll_number testDate marks testDate marks
0 John 34 234 2021-04-28 15 2021-03-28 25
如何将Dataframe转换为所需的输出?此更改将基于 Name
行的列。
编辑1
我试过用 pivot_table
但是我没有得到想要的结果。
merged_df_pivot = pd.pivot_table(merged_df, index=["name", "testDate"], aggfunc="first", dropna=False).fillna("")
当我尝试遍历 merged_df_pivot
这样地:
for index, details in merged_df_pivot.iterrows():
我再次得到两行,而且我不能添加新的 testMonth
按上述方法列。
1条答案
按热度按时间uajslkp61#
核心是
unstack()
待列月份然后逐月重新构造明细栏,使其符合所需结构
一般认为错误的做法是列名重复,因此将它们作为后缀
输出
姓名登记册号码内部登记册号码标记2测试月1测试月20日4月342341525日