假设有以下数据框:
import pandas as pd
df = pd.DataFrame({
'A_1': [1, 2, 3],
'A_2': [4, 5, 6],
'B_1': [7, 8, 9],
'B_2': [10, 11, 12]
})
df
输出:
A_1 A_2 B_1 B_2
0 1 4 7 10
1 2 5 8 11
2 3 6 9 12
要对列名中包含'A”的列求和,对列名中包含'B”的列求和,可以使用groupby()
方法来分组并求和:
sum_by_letter = df.groupby(by=lambda x: x.split('_')[0], axis=1).sum()
sum_by_letter
输出:
A B
0 5 17
1 7 19
2 9 21
将列名中的"_1"和"_2"去掉,只保留"A"和"B",并在groupby()
中指定axis=1
以按列分组。
由于列名中的字母是从第一个字符开始匹配的,因此如果列名中包含"A"或"B"以外的字母,它不会被归入相应的组中。
这种方法可以轻松地对列名相似的一组列进行求和、平均数或其他聚合操作,避免了手动指定列名的麻烦。
上一篇:按照列名将列表中的数据框命名