我有一个数据帧(DF1) -每个Personal-ID将有3个与该ID关联的日期:


我已经为每个日期(当前为空)的每个Personal-ID和列创建了一个数据帧(DF_ID),并希望将3个日期/Personal-ID (DF1)加载/循环到相应的日期列中,最终的数据帧看起来是这样的:我正在尝试学习Python语言,并尝试了许多编码脚本来完成以下操作:
{for index, row in df_bnp_5.iterrows():
df_id['Date-1'] = (row.loc[0,'hv_lab_test_dt'])
df_id['Date-2'] = (row.loc[1,'hv_lab_test_dt'])
df_id['Date-3'] = (row.loc[2,'hv_lab_test_dt'])
for i in range(len(df_bnp_5)) :
df_id['Date-1'] = df1.iloc[i, 0], df_id['Date-2'] = df1.iloc[i, 2])} 任何帮助都将不胜感激。
谢谢!
发布于 2020-10-09 04:04:29
这里有一种方法。我创建了一个“helper”列来安排每个Personal-ID的日期。
import pandas as pd
# create data frame
df = pd.DataFrame({'Personal-ID': [1, 1, 1, 5, 5, 5],
'Date': ['10/01/2019', '12/28/2019', '05/08/2020',
'01/19/2020', '06/05/2020', '07/19/2020']})
# change data type
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')
# create grouping key
df['x'] = df.groupby('Personal-ID')['Date'].rank().astype(int)
# convert to wide table
df = df.pivot(index='Personal-ID', columns='x', values='Date')
# change column names
df = df.rename(columns={1: 'Date-1', 2: 'Date-2', 3: 'Date-3'})
print(df)
x Date-1 Date-2 Date-3
Personal-ID
1 2019-10-01 2019-12-28 2020-05-08
5 2020-01-19 2020-06-05 2020-07-19https://stackoverflow.com/questions/64265600
复制相似问题