我有一個看起來像這樣的列:
group
A
A
A
B
B
C
C 值有時存在,但并不總是存在。當 C 存在時,這可以正常作業。但是,如果 C 未出現在列中,則會引發關鍵錯誤。
value_counts = df.group.value_counts()
new_df["C"] = value_counts.C
我想檢查 C 是否有計數。如果沒有,我想分配new_df["C"]一個值 0。我試過這個,但我仍然得到一個 keyerror。我還能嘗試什么?
value_counts = df.group.value_counts()
new_df["C"] = value_counts.C
if (df.group.value_counts()['consents']):
new_df["C"] = value_counts.consents
else:
new_df["C"] = 0
uj5u.com熱心網友回復:
一種方法是將系列轉換為字典并獲取密鑰,除非找不到回傳默認值(在您的情況下為 0):
df = pd.DataFrame({'group': ['A', 'A', 'B', 'B', 'D']})
new_df = {}
character = "C"
new_df[character] = df.group.value_counts().to_dict().get(character, 0)
的輸出new_df
{'C': 0}
但是,我不確定new_df應該是什么,它似乎是一本字典?或者它可能是一個新的資料框物件?
uj5u.com熱心網友回復:
一種方法是將group列轉換為Categorical具有指定類別的型別。例如:
df = pd.DataFrame({'group': ['A', 'A', 'A', 'B', 'B']})
print(df)
# group
# 0 A
# 1 A
# 2 A
# 3 B
# 4 B
categories = ['A', 'B', 'C']
df['group'] = pd.Categorical(df['group'], categories=categories)
df['group'].value_counts()
[出去]
A 3
B 2
C 0
Name: group, dtype: int64
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/497814.html
標籤:Python python-3.x 熊猫 麻木的
