我在Python中的熊貓數據框中有以下數據。我想根據名稱和屬性列對數據進行分組,並且只保留日期內的最低值。刪除基於多列的groupby只得到最低值的行
前:
Name Property Date
0 X1 Cash 621 days 00:00:00.000000000
1 X1 Cash 256 days 00:00:00.000000000
2 X1 Cash 101 days 00:00:00.000000000
3 X1 Overflow 352 days 00:00:00.000000000
4 X1 Overflow 101 days 00:00:00.000000000
5 X1 Overflow 53 days 00:00:00.000000000
重複的X2/X3等
後:
Name Property Date
2 X1 Cash 101 days 00:00:00.000000000
5 X1 Overflow 53 days 00:00:00.000000000
我試圖玩的語法,但無法得到它的權利:
df1 = df1[df1.groupby(['Name', 'Property'])['Date'].min()]
謝謝@ayhan! .min()上的重置索引完美工作。只是幾個後續問題: 1.當我執行df = df.groupby()....命令時,我還有一些其他列被刪除,我該如何保持這些列完好無損? 2.如何在下次需要發佈問題時正確地格式化我的代碼輸出? – rinwin
@rinwin對於格式化,只需將DataFrame直接粘貼到問題框中,然後選擇它並單擊代碼按鈕(帶有「{}」圖標)。至於多列:你想每列的最小值,還是你想要最小的日期對應的行?對於第一個,刪除'['Date']'應該足夠了,但對於第二個可能需要合併。我會添加一個例子。 – ayhan
df.loc [df.groupby(['Name','Property'])['Date']。idxmin()] – piRSquared