我有一个pandas数据框,其中一列只包含字符串。

df= pd.DataFrame(
  {
    "A": [2,4,7,17,39],
    "B": ["apple","apple","broccoli","rose","apple"]
  }
)

我想检查这个列“B”,并查找字符串包含单词某个部分的所有时间。然后我创建了一个新的列“C”,其中包含一系列字符串,每当“app”在行中时,这些字符串都会说“fruit”,“flower”表示每当“ros”出现时,“plate”表示每当“brocc”出现时。
最终的数据帧将如下所示:
df= pd.DataFrame(
  {
    "A": [2,4,7,17,39],
    "B": ["apple","apple","broccoli","rose","apple"],
    "C": ["fruit","fruit", "vegetable", "flower", "fruit"]
  }
)

最佳答案

创建词典

d = {'apple': 'fruit', 'broccoli': 'vegetable', 'rose': 'flower'}

并在mapreplace中使用它(map对此更快):
df['B'].map(d)
Out:
0        fruit
1        fruit
2    vegetable
3       flower
4        fruit
Name: B, dtype: object

df['B'].replace(d)
Out:
0        fruit
1        fruit
2    vegetable
3       flower
4        fruit
Name: B, dtype: object

关于python - 根据另一列在pandas数据框中创建一列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43708980/

10-13 09:49