【发布时间】:2019-05-24 12:58:36
【问题描述】:
我是 python 的新手。我有一个巨大的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
我只想选择 id 的“第一个和最后一个”并消除其余部分。结果如下所示:
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
我使用了这个代码:
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))
它有效,但我无法保存到 csv
g.to_csv('result.csv')
我收到一条错误消息:Cannot access callable attribute 'to_csv' of 'DataFrameGroupBy' objects, try using the 'apply' method
对我有什么建议吗?谢谢你
【问题讨论】:
标签: pandas csv dataframe pandas-groupby