在我展示的代码中,它读取一个文件夹中的csv文件,并在另一个文件夹中打印它们。在每个文件夹中,csv包含两列,这两列是在定义 Dataframe 时选择的。在列f中,我需要计算该值超过50.025的次数,并将其写入某列
代码:
import pandas as pd
import numpy as np
import glob
import os
all_files = glob.glob("C:/Users/Gamer/Documents/Colbun/Saturn/*.csv")
file_list = []
for i,f in enumerate(all_files):
df = pd.read_csv(f,header=0,usecols=["t","f"])
df.apply(lambda x: x['f'] > 50.025, axis=1)
df.to_csv(f'C:/Users/Gamer/Documents/Colbun/Saturn2/{os.path.basename(f).split(".")[0]}_ext.csv')
2条答案
按热度按时间bxfogqkk1#
将其存储在某个列中是不合乎逻辑的...因为它是整个表的摘要...不特定于任何行。
3ks5zfa02#
要根据特定过滤器输出列中的出现次数,并将其添加到另一列的每一行,只需执行以下操作:
df['cnt'] = df[df['f'] > 50.025]['f'].count()
如果您需要使用该计数来执行计算,最好将其存储在变量中,然后在使用所述变量时执行计算,而不是将其存储在 Dataframe 中的整个列中。
此外,我可以从您对问题的评论中看到,您还希望在输出到CSV时删除索引,因此您需要将
index=False
添加到df.to_csv()
调用中。您的代码应类似于以下内容: