我有一个包含三列的数据框,如下所示:
column1 column2 column3
1 2 3
2 1 3
3 1 2
2 3 1
我想计算每列中有多少个 1。预期的输出是这样的:
column1: 1
column2: 2
column3: 1
答案 0 :(得分:1)
my_dict = {}
for c in df.columns:
v = df[df[c]==1][c].sum()
my_dict[c]=v
结果:my_dict
{'column1': 1, 'column2': 2, 'column3': 1}
答案 1 :(得分:0)
请尝试查询 df 中等于 1 的值。这将返回一个 df 布尔值。然后在轴上求和=0:
# Define files I want to merge
filenames = ['markdown/simple1.md', 'markdown/simple2.md', 'markdown/simple3.md']
# Merge markdown files into one big file
merged_filecontent = ""
file = ""
for file in filenames:
file = open(file).read()
file += "\n"
# print(file)
merged_filecontent += file
# Call variable outside of for loop
print(merged_filecontent)
答案 2 :(得分:0)
您可以将 lambda 应用于特定列,然后按如下方式对所有 True 结果求和:
df = pd.DataFrame({'col1': [1,2,3,2], 'col2': [2,1,1,3]})
count_of_ones = df['col1'].apply(lambda x: x ==1).sum(0)
print(count_of_ones) #prints 1
count_of_ones = df['col2'].apply(lambda x: x ==1).sum(0)
print(count_of_ones) #prints 2
答案 3 :(得分:0)
让我们试试count
df.mask(df==1).count()
Out[85]:
column1 3
column2 2
column3 3
dtype: int64