我在列表中的列表中具有不同大小的列名,例如[[“ a”,“ b”,“ c”],[“ d”,“ e”],[“ f”]],也很少列包含NaN。
结果应该是列表中列表的总和,例如g = a + b + c,h = d + e,i = f,它们是列名。 NaN和应为NaN,而不是0。 如何循环执行此操作?
预期产量
| 6 inf 6 |
答案 0 :(得分:3)
使用列表理解:
L = [["a","b","c"],["d","e"],["f"]]
a = [df[x].sum(axis=1, min_count=1) for x in L]
循环解决方案:
a = []
for x in L:
a.append(df[x].sum(axis=1, min_count=1))
print (a)
[0 6
1 6
2 6
dtype: int64, 0 9.0
1 NaN
2 inf
dtype: float64, 0 6
1 6
2 6
dtype: int64]
然后添加concat
:
df1 = pd.concat(a, axis=1, keys=['g','h','i'])
print (df1)
g h i
0 6 9.0 6
1 6 NaN 6
2 6 inf 6