我正在嘗試將 pandas groupby 應(yīng)用于包含浮點(diǎn)數(shù)和字符串的列。數(shù)據(jù)框看起來像: name value0 var_1 1.41 var_2 11103 var_2 9004 var_3 'some_str'5 var_1 2.7 我正在嘗試應(yīng)用 groupby 方法,以便輸出數(shù)據(jù)幀看起來像: name value0 var_1 2.151 var_2 10052 var_3 'some_str'即獲取多次記錄的所有值的平均值,并按原樣保留非數(shù)字值。如果列僅由數(shù)字類型組成,則可以很簡單地實現(xiàn)為:new_df = df.groupby('name').mean().reset_index()有沒有一種簡單的方法來克服混合類型,這使得我上面寫的方法不適用?
1 回答

哆啦的時光機(jī)
TA貢獻(xiàn)1779條經(jīng)驗 獲得超6個贊
使用try-except聲明:
#if need convert strings column to mixed values
df['value'] = pd.to_numeric(df['value'], errors='coerce').fillna(df['value'])
def f(x):
try:
return x.mean()
except:
return ','.join(x)
new_df = df.groupby('name')['value'].apply(f).reset_index()
print (new_df)
name value
0 var_1 2.05
1 var_2 1005
2 var_3 'some_str'
添加回答
舉報
0/150
提交
取消