【问题标题】:How can I add a value to a new column based on a value existing in my dataframe in Python?如何根据 Python 数据框中现有的值向新列添加值?
【发布时间】: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`

【问题讨论】:

  • 你的意思是dataframe in pandas 吗?
  • 我很抱歉,是的,我正在使用熊猫
  • 所有代码都没有意义 - pandas 可以在没有 for 循环的情况下处理数据
  • 你的意思是说你需要一个新列council,它应该等于town
  • 您不需要遍历每一行。试试这个:df['Council']=np.where(df.Town=='Belfast', 'Belfast', df.Town)。或者我猜你只需要理事会列等于城镇。所以df['Council']=df['Town']

标签: python pandas dataframe jupyter


【解决方案1】:

我认为您需要创建dictionary 以通过所有可能的towns 与不同的council 进行映射,然后使用replace:

d = {'Enniskillen':'Fermanagh', 
     'Clogher':'Fermanagh', 
      'town1':'council1',
      ...}

PsniYear1617Cleaned['council'] = PsniYear1617Cleaned['Town'].replace(d)

【讨论】:

  • 谢谢,这正是我一直在寻找的,对我来说也是最简单的解决方案。完美的答案,非常感谢。
【解决方案2】:
PsniYear1617Cleaned[:,'council'] = PsniYear1617Cleaned['Town'].apply(lambda x: TOWN_MAP[x])

在这种情况下,您有一个城镇地图,其中存储了给定城镇的所有相应议会,而 lambda 将完成剩下的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2019-09-29
    • 2020-11-08
    相关资源
    最近更新 更多