Python 比较CSV文件中两列的数据

Python 比较CSV文件中两列的数据,python,Python,谢谢你在这方面的帮助。我有7个CSV文件(格式都相同),我已经连接到一个帧中。我的目标是比较CSV中的两列,找出“运行”列中的“完成”一词在“日期”列中的每个日期上出现的次数。到目前为止,我写的是: path = r'C:\Users\rock\Desktop\workspace\MTS_subs' all_files = glob.glob(path + "/*.csv") li = [] for filename in all_files:

谢谢你在这方面的帮助。我有7个CSV文件(格式都相同),我已经连接到一个帧中。我的目标是比较CSV中的两列,找出“运行”列中的“完成”一词在“日期”列中的每个日期上出现的次数。到目前为止,我写的是:

path = r'C:\Users\rock\Desktop\workspace\MTS_subs'          
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

counter = frame['Ran'].value_counts()
date_counter = frame['Date'].value_counts()


print(counter, date_counter)

这将打印出以下内容:

Active    1739
Done       840
Name: Ran, dtype: int64 18/06/2020    402
19/06/2020    300
17/06/2020    266
25/06/2020    264
22/06/2020    224
16/06/2020    214
23/06/2020    208
24/06/2020    208
26/06/2020    184
15/06/2020    180
21/06/2020     76
14/06/2020     46
20/06/2020      4
13/06/2020      3
Name: Date, dtype: int64

因此,在所有7个CSV中,“完成”一词出现了840次,但我想知道每个日期上“完成”出现了多少次

这件事让我挠头已经有一段时间了。非常感谢您的任何帮助或意见

(frame['Ran']='Done')。groupby(frame['Date'])。sum()
应该可以做到这一点。下面是一个模拟发布的屏幕截图的示例

>>frame=pd.DataFrame({
…日期:['13/06/2020']*3+['15/06/2020']*2+['14/06/2020']*12,
…'Ran':['Done']*17
... })
>>>框架
日期运行
0 2020年6月13日完成
1 2020年6月13日完成
2 2020年6月13日完成
3 2020年6月15日完成
4 2020年6月15日完成
5 2020年6月14日完成
2020年6月14日完成
7 2020年6月14日完成
2020年6月8日14日完成
9 2020年6月14日完成
2020年6月10日14日完成
11 2020年6月14日完成
2020年6月12日14日完成
14/06/2020完成
2020年6月14日完成
15 14/06/2020完成
16 2020年6月14日完成
>>>(frame['Ran']=='Done').groupby(frame['Date']).sum()
日期
13/06/2020     3.0
14/06/2020    12.0
15/06/2020     2.0
名称:Ran,数据类型:float64

我假设它涉及一个名为
filter
的函数或方法,以仅过滤具有
行[“Ran”]==“Done”
的行,然后执行
df['Date']
关于这一点,但我不熟悉pandas的具体语法,无法给出工作示例。您有一个CSV文件的示例吗?添加了一个CSV文件的剪报。您的意思是什么?抛出一个错误,或者没有得到正确的结果?是的,我现在让它工作,可能是一个复制粘贴错误。非常感谢你的帮助。这太棒了!