Pandas 如果列和大于指定值,则将数据写入CSV文件

Pandas 如果列和大于指定值,则将数据写入CSV文件,pandas,Pandas,我有一个CSV文件,它的列是单词的频率计数,行是时间段。我想对每列的总频率求和。然后,我想将大于或等于30的总和、列和行值写入CSV文件,从而删除总和小于30的列 只是学习蟒蛇和熊猫。我知道这是一个简单的问题,但我的知识就在这个水平上。非常感谢你的帮助 我可以读取CSV文件并计算列和 df = pd.read_csv('data.csv') 我一直在研究如何创建输出文件,使其看起来像原始文件,但不再具有总和小于30的列 我被困在如何为每一列的每一行写入一个CSV文件,其总和大于或等于30。输出

我有一个CSV文件,它的列是单词的频率计数,行是时间段。我想对每列的总频率求和。然后,我想将大于或等于30的总和、列和行值写入CSV文件,从而删除总和小于30的列

只是学习蟒蛇和熊猫。我知道这是一个简单的问题,但我的知识就在这个水平上。非常感谢你的帮助

我可以读取CSV文件并计算列和

df = pd.read_csv('data.csv')
我一直在研究如何创建输出文件,使其看起来像原始文件,但不再具有总和小于30的列

我被困在如何为每一列的每一行写入一个CSV文件,其总和大于或等于30。输出文件的布局与输入文件的布局相同。这些款项将不包括在产出中

非常感谢你的帮助


因此,这里有一个链接,显示了一个包含100行和3857列的文件摘录:

最简单的方法是通过两个步骤:

一,。将DataFrame筛选为仅要保存的列

.loc用于根据标签或条件拾取行/列;语法是.loc[rows,columns],所以:意味着取所有行,然后第二部分是我们列的条件-我取了你在问题中给出的总和,并将其设置为大于或等于30

二,。将过滤后的数据帧保存到CSV

只需将文件路径作为第一个参数。header=True表示表中的标题标签将写回文件,index=False表示在CSV中读取时自动创建的带编号的行标签将不包括在导出中

请参见此处的答案:。请注意,您的问题的解决方案不需要在求和之前为null,因为这是特定于他们计算NaN值的问题。

这有帮助吗?刚刚更正了这一点,因为在步骤2中headers=True。应为页眉=真,即单数
df.sum(axis = 0, skipna = True)
df_to_save = df.loc[:, (df.sum(axis=0, skipna=True) >= 30)]
df_to_save.to_csv('path/to/write_file.csv', header=True, index=False)