【问题标题】:Change variable based on other variable in Python根据Python中的其他变量更改变量
【发布时间】:2019-01-29 22:29:03
【问题描述】:

我有以下名为 df 的数据框,其中包含一个名为 Category 的变量。我想在 Python 中使用下面提到的值创建 new_variable。我该怎么做?

df = pd.DataFrame({
    'Category': [
        'Foreign Stocks', 'Stocks China', 'Stocks',
        'Bonds', 'Bonds USA', 'Bonds India'
    ],
    'New_Variable': [
        'Stocks', 'Stocks', 'Stocks',
        'Bonds', 'Bonds', 'Bonds'
    ]
})

df

         Category New_Variable
0  Foreign Stocks       Stocks
1    Stocks China       Stocks
2          Stocks       Stocks
3           Bonds        Bonds
4       Bonds USA        Bonds
5     Bonds India        Bonds

也许是我无法将其他类似的答案翻译为我的解决方案,但我无法在其他地方找到相同的问题。

/乔纳斯

【问题讨论】:

  • 嗨@Jonas。欢迎来到 Stackoverflow!这个问题没有给我们足够的信息,而且你的措辞方式令人困惑。您可能没有意识到这一点,可能需要一些指导。请阅读minimal reproducible example 以获得更好的想法。你可以随时回来edit你的问题。基本要点是我们希望看到数据、语言逻辑和期望的示例。
  • 另外,将您的问题标记为重复并不是什么大问题。如果它是重复的,那么您应该能够从标记为 dup 目标的问题中获得答案。如果不是,请说出来。我个人认为您的问题不够清楚,无法判断它是否重复。请考虑editing 以便澄清。如果它仍然是一个重复,那就这样吧。否则,我们将在适当的情况下删除 dup。
  • 感谢您的 cmets。我试图改写我的问题。现在有意义吗?
  • @piRSquared - 我同意,所以重新打开。
  • 是的,它更清晰。它可能仍然是一个副本。我正在寻找一个,但你应该在下面得到一些帮助。

标签: python pandas if-statement dataframe conditional-statements


【解决方案1】:

pandas.Series.str.extract

df.assign(New_Variable=df.Category.str.extract('(Bonds|Stocks)'))

         Category New_Variable
0  Foreign Stocks       Stocks
1    Stocks China       Stocks
2          Stocks       Stocks
3           Bonds        Bonds
4       Bonds USA        Bonds
5     Bonds India        Bonds

【讨论】:

  • 我明白了。谢谢!
  • 我经常使用assign,因为它会创建数据帧的新副本。根据我写的内容,您可以重新分配给名称 df... 所以 df = df.assign(New_Variable=df.Category.str.extract('(Bonds|Stocks)'))
猜你喜欢
  • 1970-01-01
  • 2023-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
相关资源
最近更新 更多