【发布时间】:2020-04-03 15:53:54
【问题描述】:
我有一个 pandas 数据框(人口),我想向其中添加一个新列。新列应该是 - 当然对于每个索引/行 - 所有(且仅)名称中包含子字符串“ussr”的列的总和。 有办法吗?
【问题讨论】:
标签: python pandas dataframe data-manipulation
我有一个 pandas 数据框(人口),我想向其中添加一个新列。新列应该是 - 当然对于每个索引/行 - 所有(且仅)名称中包含子字符串“ussr”的列的总和。 有办法吗?
【问题讨论】:
标签: python pandas dataframe data-manipulation
您可以生成此列运行:
df['MySum'] = df[df.columns[df.columns.str.contains('ussr', case=False)]].sum(axis=1)
详情:
df.columns.str.contains('ussr', ...) - 创建一个 boolean 列表 -
特定列是否包含 ussr 字符串。case=False - 不区分大小写(如果需要)。df.columns[...] - 创建一个包含此字符串的列列表。df[...] - 检索这些列的内容。sum(axis=1) - 为每一行生成这些列的总和。df['MySum'] = ... - 将结果保存在给定列下。您可以将目标列名称更改为您想要的任何名称,但要避免 将 ussr 置于其名称中。否则,当您运行上述指令时 同样,它的值也将被视为源元素之一。
【讨论】: