我在代码中实现了以下groupby语句。以下代码的目的是提供" DTIN"的最短日期。列由独特的EVENTID。
df_EVENT5_future_2 = df_EVENT5_future.groupby('EVENTID').agg({'DTIN': [np.min]})
df_EVENT5_future_3 = df_EVENT5_future_2.reset_index()
输出表如下:
EVENTID DTIN
amin
A 1/3/2019
B 1/19/2019
C 2/10/2019
我希望表格像这样输出。我不希望amin在列标题中。
EVENTID DTIN
A 1/3/2019
B 1/19/2019
C 2/10/2019
非常感谢任何帮助。
答案 0 :(得分:0)
这符合@ Wen的建议。您不需要使用agg
来实现此目的。只需使用groupby.min()
并设置as_index=False
:
result = df.groupby('EVENTID', as_index=False)['DTIN'].min()
请不要投票或接受这个答案,因为这是重复的。
示例强>
df = pd.DataFrame({'DTIN': {0: 4, 1: 3, 2: 9, 3: 1, 4: 2, 5: 5, 6: 6, 7: 5},
'EVENTID': {0: 'A', 1: 'A', 2: 'A', 3: 'B', 4: 'C', 5: 'B', 6: 'B', 7: 'C'}})
result = df.groupby('EVENTID', as_index=False)['DTIN'].min()
# EVENTID DTIN
# 0 A 3
# 1 B 1
# 2 C 2