【问题标题】:Adding columns of list within list in pandas在熊猫列表中添加列表列
【发布时间】:2020-02-12 14:47:18
【问题描述】:

我在列表中的列表中有不同大小的列名,例如 [["a","b","c"],["d","e"],["f"]] 也很少列包含 NaN。

|a b c d e f|

|1 2 3 4 5 6|

|1 2 3 南南 6|

|1 2 3 4 inf 6|

结果应该是列表中列表的总和,例如 g=a+b+c、h=d+e、i=f,它们是列名。 NaN 总和应该导致 NaN,而不是 0。 如何循环执行?

预期输出

|g h i|

|6 9 6|

|6 NaN 6|

|6 inf 6|

【问题讨论】:

  • 你能添加预期的输出吗?
  • 添加了预期的输出
  • 超级,答案已编辑,请检查。

标签: python pandas


【解决方案1】:

使用列表理解:

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

【讨论】:

    猜你喜欢
    • 2016-01-13
    • 2020-03-13
    • 2015-09-10
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2015-07-31
    • 2021-06-09
    相关资源
    最近更新 更多