提问人:user5618251 提问时间:4/16/2021 最后编辑:user5618251 更新时间:4/16/2021 访问量:355
如何在Python的csv文件中找到匹配的字符串?
How to find matching string in csv file in Python?
问:
我有一个程序可以计算气象站列表的前 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)
文件如下所示:
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'
谢谢!
答:
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]])
评论