我有以下數據框:GROUPBY的基礎上,另一列則設置列值(太多索引)
updated_at type source
0 2017-01-01 User
1 2017-01-01 Inbound
2 2017-01-02 User
3 2017-01-02 Outbound
4 2017-01-03 Outbound
5 2017-01-03 User
我需要擺脫行,其中type != User
的,但接盤源的行其中type == User
到我擺脫的行的type
。到目前爲止,我試過做一個groupby('updated_at)
,但我遇到了在副本上設置值的錯誤。另外,groupby('updated_at')
總是隻返回兩行。
這就是我想要的結果是:
updated_at type source
0 2017-01-01 User Inbound
2 2017-01-02 User Outbound
5 2017-01-03 User Outbound
注:我有〜37萬行
謝謝,我得到了它的工作。它們並不總是連續的,但增加'sort_values'就能做到。我的df實際上說比較複雜一些,但最終結果是: 'df [「source」] = df.sort_values('type')。groupby(['updated_at','operator_name'])[''鍵入']。shift(+1)' –
看起來像'sort_values'沒有按計劃工作。仍然無法使'type'連續。 我想另一個選擇可能是使用'.groupby(...)。agg('sum')',但我不知道在sum函數中使用分隔符。 –
你應該更具體地表達你的意思,「然後將type == User的行的源設置爲我擺脫的行的類型」。由於線條不連續,因此您應該保留一行中的「來源」?你擺脫了最後一行的字段「類型」?別的東西 – Phik