python – 匹配多个CSV文件中的多个元素

python – 匹配多个CSV文件中的多个元素,第1张

概述我有两个CSV文件,都包含日期和时间列. 对于EACH行,我需要在CSV 1和CSV 2中匹配时间和日期,并从CSV 2中提取天气. CSV 1: Date Time Value 2017/04/20 12:00 100 2017/03/20 12:00 250 2017/03/20 12:00 300 我有两个CSV文件,都包含日期和时间列.
对于EACH行,我需要在CSV 1和CSV 2中匹配时间和日期,并从CSV 2中提取天气.

CSV 1:

Date           Time    Value    2017/04/20     12:00   100    2017/03/20     12:00   250    2017/03/20     12:00   300    2017/02/20     12:00   80    2017/02/20     12:00   500

CSV 2:

Date           Time    Weather    2017/02/20     12:00   Sunny    2017/02/20     12:00   Sunny    2017/03/20     12:00   Sunny    2017/03/20     12:00   Sunny    2017/04/20     12:00   Sunny

我不知道它是否有效,但我做的第一件事就是将CSV文件附加到两个python列表:

List1 = []List2 = []for row in CSV1:    List1.append(row)for row in CSV2:    List2.append(row)

然后我对List1中的每一行,获取日期和类型,并立即循环遍历List2中的每一行,直到元素匹配.

for row in List1:    published_date = row[0]    published_time = row[1]    for rows in List2:        if published_date == rows[0] and published_time == rows[1]:            "do something with rows[2]"            break

这样可行,但CSV1有1700行,CSV2有1.000.000行,因此这个过程需要150秒.有明显更快的方法吗?

我知道有一个元素必须匹配的解决方案,但这里是2,我无法调整单元素解决方案.

我是Stack Overflow的新手,所以如果我在这篇文章中做错了,请通知我.

解决方法 我建议您查看Python中的“pandas”库.它可以帮助您解决效率问题.我很好奇并在Pandas中实现了这个问题,我能够在373毫秒内使用一些虚拟数据来完成问题.

您可以使用以下代码来衡量框架的使用情况.

# Generating some random samplesimport pandas as pddate_range = pd.date_range(start='2017-04-20',periods=1700)time_range = pd.to_datetime(pd.date_range('12:00',freq='1H',periods=1700).strftime('%H:%m'))values = np.arange(0,1700)weather = np.random.choice(['rain','sunny','windy'],size=1700,replace=True)# Putting the Random Data into a DataFramedf1 = pd.DataFrame({'Date':date_range,'Time':time_range,'Value':values})df2 = pd.DataFrame({'Date':np.random.choice(date_range,size=1000000,replace=True),'Time': np.random.choice(time_range,'Weather':np.random.choice(weather,replace=True)})# Mergind the Datatogther on the Date and Time Columnsdf3 = pd.merge(df1,df2,on=['Date','Time'],how='inner')df3
总结

以上是内存溢出为你收集整理的python – 匹配多个CSV文件中的多个元素全部内容,希望文章能够帮你解决python – 匹配多个CSV文件中的多个元素所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192102.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存