[英]Pandas - max from DataFrame groupby return NAN
我的 dataframe 有問題。 我想從 DataFrame 分組的一列中獲取最大值,但我只得到 NaN...
我的 Dataframe
kod_ow kod_sw ... pr_kierunkowa infrast_h_bloku
0 06 061/200324 ... None 0.000000
1 06 061/200324 ... None 0.000000
2 06 061/200324 ... None 209.365495
3 06 061/200324 ... None 0.000000
4 06 061/200324 ... None 0.000000
5 06 061/200324 ... None 209.365495
[6 rows x 8 columns]
我試過:
df['new'] = df.groupby(by=['kod_ow', 'kod_sw', 'nr_ks', 'nr_ks_pr', 'nazwa_zabiegu_icd_9', 'nazwa_zabiegu','pr_kierunkowa'])['infrast_h_bloku'].transform('max')
我的結果是:
kod_ow kod_sw nr_ks ... infrast_h_bloku osobodzien new
0 06 061/200324 3193 ... 0.000000 0.0 NaN
1 06 061/200324 3193 ... 0.000000 0.0 NaN
2 06 061/200324 3193 ... 209.365495 0.0 NaN
3 06 061/200324 54809 ... 0.000000 0.0 NaN
4 06 061/200324 54809 ... 0.000000 0.0 NaN
5 06 061/200324 54809 ... 209.365495 0.0 NaN
問題是,為什么 max function 將 NAN 放入新列而不是實際結果???
有人可以幫助我,我做錯了什么嗎?
這是為每個 id 獲取最大 col2 行的類似示例。
# importing pandas as pd
import pandas as pd
# dictionary of lists
dict = {'id':[1, 1, 2, 2],
'col1':[21, 40, 81, 98],
'col2':[30, 20, 80, 91],
'col3':[90, 10, 41, 99]
}
# creating a dataframe from a dictionary
df = pd.DataFrame(dict)
df[df.groupby(by=['id'])['col2'].transform(max) == df['col2']]
所以你可以在你的情況下使用它,如下所示:
df.groupby(by=['kod_ow', 'kod_sw', 'nr_ks', 'nr_ks_pr', 'nazwa_zabiegu_icd_9', 'nazwa_zabiegu','pr_kierunkowa'])['infrast_h_bloku'].transform(max)==df['infrast_h_bloku']
你寫了 df["new"]。 由於“新”不是現有列,因此會創建一個新列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.