我有一个这样的表:
| 联系我们|最后的名字|出生日期|2022年1月1日|2022年2月1日|2022年3月1日|2022年4月1日|开始日期|结束日期| End Date |
| --|--|--|--|--|--|--|--|--| ------------ |
| 万达|样品|2020年1月1日|很好,很好|很好,很好|很好,很好|很好,很好|2022年1月1日|2022年1月31日| 1/31/2022 |
我想将数据透视成这样:
| 生效日期|联系我们|最后的名字|出生日期|工作状态|开始日期|结束日期| End Date |
| --|--|--|--|--|--|--| ------------ |
| 2022年1月1日|万达|样品|2020年1月1日|很好,很好|2022年1月1日|2022年1月31日| 1/31/2022 |
| 2022年2月1日|万达|样品|2020年1月1日|很好,很好|2022年1月1日|2022年1月31日| 1/31/2022 |
| 2022年3月1日|万达|样品|2020年1月1日|很好,很好|2022年1月1日|2022年1月31日| 1/31/2022 |
| 2022年4月1日|万达|样品|2020年1月1日|很好,很好|2022年1月1日|2022年1月31日| 1/31/2022 |
实际上,这会将单独标注日期的列转换为一个名为“Status”的列和包含单独日期的行。
我从这段基本代码开始,但是在创建新列并将值赋给它们各自的列的语法中遇到了麻烦。
import pandas as pd
import numpy as np
df = pd.read_csv(r'C:\Users\User\sample.csv')
df.pivot_table(columns=['Effective Date','First Name','Last Name','Date of Birth','Status','Start Date','End Date'],values=['1/1/2022','2/1/2022','3/1/2022','4/1/2022'], aggfunc=np.max)
df.head
字符串
2条答案
按热度按时间hs1rzwqc1#
尝试
melt
:字符串
输出量:
型
ct3nt3jp2#
你可以尝试
.set_index()
+.stack()
+.reset_index()
。然后重命名列:字符串
印刷品:
型