如何在Python的csv文件中找到匹配的字符串?

How to find matching string in csv file in Python?

提问人:user5618251 提问时间:4/16/2021 最后编辑:user5618251 更新时间:4/16/2021 访问量:355

问:

我有一个程序可以计算气象站列表的前 3 个最大值。前 3 个气象站的名称是一个字符串,由排序列表(从最大到最小)“maxstat”确定,如下所示:

txtmax = '\n{}\n{}\n{}'.format(maxstat[0],
                               maxstat[1],
                               maxstat[2])

例如,txtmax 可以在哪里

'Baal'
'Arnhem'   
'Arendonk'  

现在我有另一个用 Python 导入的 csv 文件,其中列出了电台的国家/地区(按字母顺序排列):

countrystationsfile = os.path.join(
    os.path.dirname(__file__),
    'resources', 'stations_country.csv')
countrystations = pd.read_csv(countrystationsfile)

文件如下所示:

enter image description here

    Place   Country Source  Comment
1   Afferden    NL  AMATEUR N/A
2   Alkmaar NL  AMATEUR N/A
3   Almelo  NL  AMATEUR N/A
4   Almere  NL  AMATEUR N/A
5   Appelscha   NL  AMATEUR N/A
6   Archenes    BE  AMATEUR N/A
7   Arendonk    BE  AMATEUR N/A
8   Arnhem  NL  AMATEUR N/A
9   Assen   NL  AMATEUR N/A
10  Avelgem BE  AMATEUR N/A
11  Baal    BE  AMATEUR N/A

如何使txtmax自动在countrystations文件中搜索电台(Place列)的相应匹配字符串,从而确定其国家/地区(Country列)?最后,我想要的是txtmax的以下内容:

'Baal, BE'
'Arnhem, NL'   
'Arendonk, BE'  

谢谢!

python-3.x 字符串

评论

0赞 4/16/2021
将 CSV 文件的一小段内容作为格式化文本发布。数据图像没有帮助。此外,您忘了显示您的“统计数据”,那么我们将如何确定前 3 名?
0赞 user5618251 4/16/2021
我将其作为文本放置在图像下方。由 maxstat 确定的字符串和 txtmax 列表中的站点一直在变化,因为气象站的温度总是在变化。

答:

1赞 Toby Petty 4/16/2021 #1

如果 DataFrame 中的条目是唯一的,则可以从 2 列创建一个字典,然后使用该字典在国家/地区进行映射,例如:

d = dict(zip(countrystations['Place'], countrystations['Country']))

然后:

txtmax = '\n{}, {}\n{}, {}\n{}, {}'.format(maxstat[0], d[maxstat[0]],
                                           maxstat[1], d[maxstat[1]],
                                           maxstat[2], d[maxstat[2]])