【问题标题】:Python searching and appending 2 csv filesPython搜索并附加2个csv文件
【发布时间】:2020-03-14 02:31:34
【问题描述】:

我有 2 个 CSV 文件。第一个文件包含美国所有州的列表,但经度和纬度列中缺少值。我找到了另一个 CSV 文件,其中包含美国所有州的所有经度和纬度值。

我现在要做的是遍历第一个文件的“位置”列,将其与第二个文件的“位置”列匹配,然后获取其经度和纬度的相应值。之后,我需要将这些值附加到第一个文件中的经度和纬度列

目前,我拥有的是这样的:

aviationdata = pd.read_csv('AviationData.csv', sep = ',', header = 0, encoding = 'iso-8859-1') #this is the first file
location = pd.read_csv('location.csv') #this is the 2nd file

import csv

with open('location.csv', 'r') as loc:
    locationfile = loc.read()

for i in range(len(aviationdata['Location'])):
    currentlocation = aviationdata['Location'].iloc[i]
    axis = []
    for i in currentlocation:
        if i in aviationdata['Location']:
   ... #i do not know how to continue from here

我不知道如何想出代码来比较位置字段以从location.csv 中提取经度和纬度代码,并将它们相应地附加到aviationdata 中的经度和纬度列中。

这些是第一个文件(aviationdata)的字段

这些是第二个文件(位置)的字段

【问题讨论】:

标签: python csv data-cleaning


【解决方案1】:

这对于合并 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.merge.html 来说看起来不错

假设两个 DataFrame 中的 Location 列完全相同(即大小写和间距),那么,

1.) 从 Aviation Data 中获取所有感兴趣的列

aviationdata = aviationdata[["Location", "Country", "Make", "Weather.Condition", "Year", "Month"]]

2.) 现在将航空数据与列名“Location”上的 currentLocation DataFrame 合并

aviationdata = aviationdata.merge(currentlocation, on=['Location'])

aviationdata.head(10)

【讨论】:

    猜你喜欢
    • 2011-08-30
    • 2016-05-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    • 2014-11-27
    • 2013-02-26
    • 2015-04-28
    • 1970-01-01
    相关资源
    最近更新 更多