【发布时间】:2020-03-30 13:57:44
【问题描述】:
我有这个数据框:
df = [{'A1':10, 'A2':''}, {'A1':11,'A2':110}, {'A1':12,'A2':120}]
我想对不同的列进行平均,忽略 ''(空字符串)值。
这是想要的输出
df_AVG = [{'A1':10, 'A2':'','avg':10}, {'A1':11,'A2':110,'avg': 60.5}, {'A1':12,'A2':120,'avg':66}]
我可以用这段代码做到这一点:
df['avg'] = df[['A1','A2']].mean(axis=1, numeric_only=True)
但是当我修改数据框并且它包含多个空格时,像这样
df = [{'A1':10, 'A2':''}, {'A1':'','A2':110}, {'A1':12,'A2':120}]
我运行相同的代码,输出是这样的。所有 'avg' 值都是 NaN,包括以前有效的值:
df_AVG = [{'A1':10, 'A2':'','avg':NaN}, {'A1':11,'A2':110,'avg': NaN}, {'A1':12,'A2':120,'avg':NaN}]
您能告诉我这种方法有什么问题吗?谢谢!
【问题讨论】:
标签: python pandas dataframe average nan