【问题标题】:Python 2.7: How to identify unique string from string in pandas dataframe and print designated value in a specified column based on the result?Python 2.7:如何从 pandas 数据框中的字符串中识别唯一字符串并根据结果在指定列中打印指定值?
【发布时间】:2016-11-15 12:53:52
【问题描述】:

我一直在研究类似的问题,但未能找到答案。如果您能帮助我,我将不胜感激,因为我是编程和 Python(2.7) 的新手..

所以我有这个熊猫数据框。

这是我拥有的数据:

如果 info 列中包含“man”字符串(并且在同一行中),我想做的是把 1 放在 man 列中。否则,我想输入 0。对于女性列也是如此。所以,我想要的是这样的。

这就是我想要创建的:

有什么方法可以创建一个函数来识别指定的字符串,例如信息列中的男人或女人,并相应地在男人和女人列中放置 1 或 0?

【问题讨论】:

    标签: python string python-2.7 if-statement pandas


    【解决方案1】:

    这行得通

    import string
    df['woman'] = df['info'].map(lambda x: x.translate(None, string.punctuation)).map(lambda x: 1 if 'woman' in x.lower().split() else 0)
    df['man'] = df['info'].map(lambda x: x.translate(None, string.punctuation)).map(lambda x: 1 if 'man' in x.lower().split() else 0)
    df
    

    the output

    【讨论】:

      【解决方案2】:

      新答案

      dataframe = pd.DataFrame([['Age is 83,sex is man'],
                                ['sex is woman,age is 74']],
                               columns=['info'])
      
      mw = dataframe['info'].str.extract(r'sex is (woman|man)', expand=False)
      pd.concat([dataframe, pd.get_dummies(mw).astype(int)], axis=1)
      

      旧答案

      dataframe['man'] = dataframe['info'].str.match(r'^.*sex is man.*$', re.I).astype(int)
      dataframe['woman'] = dataframe['info'].str.match(r'^.*sex is woman.*$', re.I).astype(int)
      dataframe
      

      你也可能find this很有趣。

      【讨论】:

      • @yusuke0426 如果它确实回答了您的问题,请不要忘记将其标记为答案。
      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 2021-07-10
      • 2015-11-14
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多