【发布时间】:2017-11-25 13:56:34
【问题描述】:
Image of how my dataframe looks at the minute
我正在尝试在我的数据框中添加一个名为“council”的新列,该列将基于 Town 字段。例如,如果Town == 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`
【问题讨论】:
-
你的意思是
dataframeinpandas吗? -
我很抱歉,是的,我正在使用熊猫
-
所有代码都没有意义 -
pandas可以在没有for循环的情况下处理数据 -
你的意思是说你需要一个新列
council,它应该等于town -
您不需要遍历每一行。试试这个:
df['Council']=np.where(df.Town=='Belfast', 'Belfast', df.Town)。或者我猜你只需要理事会列等于城镇。所以df['Council']=df['Town']
标签: python pandas dataframe jupyter