簡體   English   中英

Python 2.7:如何從pandas數據幀中的字符串中識別唯一字符串,並根據結果在指定列中打印指定值?

[英]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)的新手。

所以我有這個熊貓數據幀。

這是我的數據: 在此輸入圖像描述

我想要做的是將1放在man列中,如果“man”字符串包含在info列中(並且在同一行中)。 否則,我想把0.同樣的女人專欄。 所以,我想要的是這樣的。

這就是我想要創建的: 在此輸入圖像描述

有沒有辦法可以創建一個識別指定字符串的函數,比如信息欄中的男人或女人,並在男女專欄中相應地放1或0?

新答案

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

在此輸入圖像描述

你可能也覺得這很有意思。

這有效

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

輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM