Image of how my dataframe looks at the minute
我正在尝试在我的数据框中添加一个名为“council”的新列,该列将基于Town字段。例如,如果Town == Belfast
,我希望新的列理事会保持值Belfast。然而,需要注意的是,这些议会的一些价值观与城镇不同。另一个例子可能是,该镇可能是Clogher,我想把理事会的价值放在Fermanagh身上。我是python的新手,非常感谢任何帮助。如果您需要我遗漏的更多信息,请询问。 (到目前为止,我只为贝尔法斯特议会区试过这个)
我想要做的是遍历数据框中的每一行并检查“城镇”列。如果Town列等于“Belfast”那么我想将值“Belfast”输入到名为“Council”的新列中。
count = 0
for index, row in PsniYear1617Cleaned.iterrows():
grabtown = PsniYear1617Cleaned["Town"]
for value in grabtown:
if value["Town"][0] == "Belfast":
PsniYear1617Cleaned.set_value(index, 'Council', value["Belfast"])
count = count + 1
TypeError
Traceback (most recent call last)
<ipython-input-122-31f11c973fc5> in <module>()
3 grabtown = PsniYear1617Cleaned["Town"]
4 for value in grabtown:
----> 5 if value["Town"][0] == "Belfast":
6 PsniYear1617Cleaned.set_value(index, 'Council', value["Belfast"])
7 count = count + 1
TypeError:字符串索引必须是整数,而不是str`
答案 0 :(得分:0)
PsniYear1617Cleaned[:,'council'] = PsniYear1617Cleaned['Town'].apply(lambda x: TOWN_MAP[x])
在这种情况下,你有一个城镇地图,它存储了给定城镇的所有相应的议会,而lambda将完成其余的工作。
答案 1 :(得分:0)
我认为您需要使用不同的dictionary
创建所有town
的maping来创建council
,然后使用replace
:
d = {'Enniskillen':'Fermanagh',
'Clogher':'Fermanagh',
'town1':'council1',
...}
PsniYear1617Cleaned['council'] = PsniYear1617Cleaned['Town'].replace(d)