【问题标题】:Matching variable value in pandas CSVpandas CSV中的匹配变量值
【发布时间】:2017-12-27 13:04:36
【问题描述】:

我有一个包含城镇、县和国家/地区列表的 CSV 文件。

                Town           County  Country      
            Ampthill     Bedfordshire  England      
             Arlesey     Bedfordshire  England      

我希望能够检查一个城镇是否在列表中,如果一个城镇在列表中,那么我想知道这个国家是什么。 目前使用熊猫。

关于如何检查 pandas 中是否存在变量值的任何想法。

【问题讨论】:

    标签: python pandas csv data-science


    【解决方案1】:

    试试这个:

    import pandas as pd
    df = pd.read_csv('YOUR_PATH_HERE')
    
    # to check if a single town
    country = df.loc[(df['Town'] == 'Arlesey')]['Country']
    
    # using the isin() operator
    df.loc[df['Town'].isin(['Arlesey'])]['Country']
    

    输出:

    1    England
    

    使用isin() 是一个非常强大的工具,可以满足您的需求。如果值在列表中,它需要一个列表并返回True。如果您想要整个数据框,只需在末尾删除 ['Country]

         Town      County       Country
    1   Arlesey Bedfordshire    England
    

    如果需要实际值,可以使用pd.series.values

    # using values[0] because it is the first element in the array
    df.loc[df['Town'].isin(['Arlesey'])]['Country'].values[0]
    

    【讨论】:

    • @Jack,我很高兴。很高兴我能帮助你!是你要找的输出吗?
    • 我可以使用它。基本上,我有一个网络抓取工具,其中包含汽车及其所在城镇的列表。我希望能够将每个城镇设置为正确的县/国家/地区以进行过滤。问题是文本可能与我得到的 CSV 列表不完全匹配,所以我必须使用模糊匹配库并查看匹配 >= 90%,然后城镇 = 国家。希望这是有道理的。
    • 如果你需要一个模糊匹配器,我可以建议fuzzywuzzy。它在你想要完成的事情上做得非常好,它使用Levenshtein Distance 作为它的模糊匹配。
    • 太好了,谢谢!感谢你的帮助。你觉得我的做法是合适的吗?
    • @Jack,没有一些关于什么数据被带回的样本——我可以说你可能走对了。 Pandas 非常强大,因此当您需要操作数据以及切片和切块时,您不会出错。至于fuzzywuzzy,它有时会返回一些“关闭”的结果......如果您需要真正深入了解文本处理,请查看nltk。这是一个非常繁重的语言处理器,您可以真正磨练解决方案。您的网络抓取工具有/正在使用什么?
    【解决方案2】:

    如果你只想要相应交叉点的值:

    import pandas as pd
    
    df = pd.read_csv('test.csv')
    
    if 'ampthill' in df['town'].values:
        index = df.town[df.town == 'ampthill'].index.tolist()[0]
        country = df.loc[index, 'country']
    
    print(country)
    >>> england
    

    【讨论】:

    • 谢谢,我会试试这个技巧的。
    猜你喜欢
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多