【发布时间】:2021-09-19 01:45:20
【问题描述】:
我有一个表,其中有同一个实例的多个条目以及对该实例的多次调用。我正在尝试为每个调用创建一个列,其中最后一个调用从第一个调用开始每行都有一个列。这是一个示例表:
| Name | Discharge Date | Recorded Time |
|---|---|---|
| A | 7/1/2021 | 7/2/2021 13:20 |
| A | 7/1/2021 | 7/3/2021 8:45 |
| A | 7/15/2021 | 7/15/2021 9:00 |
| A | 7/15/2021 | 7/15/2021 11:32 |
| A | 7/15/2021 | 7/15/2021 14:14 |
| A | 7/20/2021 | 7/21/2021 10:02 |
| B | 7/3/2021 | 7/4/2021 11:46 |
| B | 7/6/2021 | 7/7/2021 9:34 |
| B | 7/6/2021 | 7/7/2021 12:23 |
| B | 7/6/2021 | 7/8/2021 8:58 |
| B | 7/6/2021 | 7/8/2021 15:51 |
| B | 7/29/2021 | 7/30/2021 11:12 |
| B | 7/29/2021 | 7/30/2021 16:41 |
我基本上是想让它看起来像这样:
| Name | Discharge Date | Recorded Time | Call 1 | Call 2 | Call 3 | Call 4 |
|---|---|---|---|---|---|---|
| A | 7/1/2021 | 7/3/2021 8:45 | 7/2/2021 13:20 | 7/3/2021 8:45 | ||
| A | 7/15/2021 | 7/15/2021 14:14 | 7/15/2021 9:00 | 7/15/2021 11:32 | 7/15/2021 14:14 | |
| A | 7/20/2021 | 7/21/2021 10:02 | 7/21/2021 10:02 | |||
| B | 7/3/2021 | 7/4/2021 11:46 | 7/4/2021 11:46 | |||
| B | 7/6/2021 | 7/8/2021 15:51 | 7/7/2021 9:34 | 7/7/2021 12:23 | 7/8/2021 8:58 | 7/8/2021 15:51 |
| B | 7/29/2021 | 7/30/2021 16:41 | 7/30/2021 11:12 | 7/30/2021 16:41 |
我试过换班
df1['Call 1'] = df1.groupby(['Name', 'Discharge Date'])['RECORDED_TIME'].shift(-1)
df1['Call 2'] = df1.groupby(['Name', 'Discharge Date'])['RECORDED_TIME'].shift(-2)
df1['Call 3'] = df1.groupby(['Name', 'Discharge Date'])['RECORDED_TIME'].shift(-3)
df1['Call 4'] = df1.groupby(['Name', 'Discharge Date'])['RECORDED_TIME'].shift(-4)
这让我倒退了最后一行。我尝试过第 n 个,例如:
df1['Call 1'] = df1.groupby(['Name', 'Discharge Date'], as_index=False)['RECORDED_TIME'].nth(0)
df1['Call 2'] = df1.groupby(['Name', 'Discharge Date'], as_index=False)['RECORDED_TIME'].nth(1)
df1['Call 3'] = df1.groupby(['Name', 'Discharge Date'], as_index=False)['RECORDED_TIME'].nth(2)
df1['Call 4'] = df1.groupby(['Name', 'Discharge Date'], as_index=False)['RECORDED_TIME'].nth(3)
我已尝试更改位置编号,但它们不会循环播放。所以我似乎无法从该组呼叫中的第一个呼叫中捕捉到呼叫 1。重申一下,我正在尝试在组的最后一个呼叫上创建一个列,将第一个呼叫放在列呼叫 1 中,第二个呼叫放在列呼叫 2 中,等等。放弃其他呼叫并将最后一个呼叫保持在记录的时间内很容易一次我可以在那里获得那些新列。
【问题讨论】:
标签: python pandas pandas-groupby