无法从Groupby保存到CSV

时间:2018-12-26 07:52:17

标签: pandas csv dataframe pandas-groupby

我是python的新手。我有一个巨大的"Call to a member function getClientOriginalExtension() on null" ,具有数百万的行和ID。我的数据如下:

dataframe

我对ID和时间上的数据进行了排序。

Time    ID  X   Y
8:00    A   23  100
9:00    B   24  110
10:00   B   25  120
11:00   C   26  130
12:00   C   27  140
13:00   A   28  150
14:00   A   29  160
15:00   D   30  170
16:00   C   31  180
17:00   B   32  190
18:00   A   33  200
19:00   C   34  210
20:00   A   35  220
21:00   B   36  230
22:00   C   37  240
23:00   B   38  250

,我只想选择ID的“第一个和最后一个”,并消除其余的。结果看起来像这样:

Time    ID  X   Y
8:00    A   23  100
13:00   A   28  150
14:00   A   29  160
18:00   A   33  200
20:00   A   35  220
9:00    B   24  110
10:00   B   25  120
17:00   B   32  190
21:00   B   36  230
23:00   B   38  250
11:00   C   26  130
12:00   C   27  140
16:00   C   31  180
19:00   C   34  210
22:00   C   37  240
15:00   D   30  170

我使用了以下代码:

Time    ID  X   Y
8:00    A   23  100
20:00   A   35  220
9:00    B   24  110
23:00   B   38  250
11:00   C   26  130
22:00   C   37  240
15:00   D   30  170

它可以工作,但是我无法保存到csv

df = pd.read_csv("contoh.csv")
g = df.groupby('ID')
(pd.concat([g.head(1), g.tail(1)])
   .drop_duplicates()
   .sort_values('ID')
   .reset_index(drop=True))

我收到一条错误消息:g.to_csv('result.csv')

对我有什么建议吗?谢谢

1 个答案:

答案 0 :(得分:2)

使用concat函数时,没有将其应用于groupby对象g。您需要将concat函数的输出重新分配给另一个对象。

df = pd.read_csv("contoh.csv")
g = df.groupby('ID')
g_1 = pd.concat([g.head(1),g.tail(1)]).drop_duplicates().sort_values('ID').reset_index(drop=True)
g_1.to_csv('result.csv')