【发布时间】:2017-01-26 03:29:14
【问题描述】:
我在数据框中有以下列:
Q2
1 4
1 3
3 4 11
1 4 6 15 16
我想替换单元格中的多个值(如果存在):1 被 Facebook 替换,2 替换为 Instagram,等等。
我将值拆分如下:
columns_to_split = 'Q2'
for c in columns_to_split:
df[c] = df[c].str.split(' ')
哪个输出
code
DSOKF31 [1, 4]
DSOVH39 [1, 3]
DSOVH05 [3, 4, 16]
DSOVH23 [1, 4, 6, 15, 16]
Name: Q2, dtype: object
但是当尝试用字典替换多个值时,如下所示:
social_media_2 = {'1':'Facebook', '2':'Instagram', '3':'Twitter', '4':'Messenger (Google hangout, Tagg, WhatsAPP, MSG, Facetime, IMO)', '5':'SnapChat', '6':'Imo', '7':'Badoo', '8':'Viber', '9':'Twoo', '10':'Linkedin', '11':'Flickr', '12':'Meetup', '13':'Tumblr', '14':'Pinterest', '15':'Yahoo', '16':'Gmail', '17':'Hotmail', '18':'M-Pesa', '19':'M-Shwari', '20':'KCB-Mpesa', '21':'Equitel', '22':'MobiKash', '23':'Airtel money', '24':'Orange Money', '25':'Mobile Bankig Accounts', '26':'Other specify'}
df['Q2'] = df['Q2'].replace(social_media_2)
我得到相同的输出:
code
DSOKF31 [1, 4]
DSOVH39 [1, 3]
DSOVH05 [3, 4, 16]
DSOVH23 [1, 4, 6, 15, 16]
Name: Q2, dtype: object
在这种情况下如何替换一个单元格中的多个值?
【问题讨论】:
-
为什么只有一列?它总是有两个值吗?那不应该是两个单独的列吗?
-
是的,
[1, 2]应该变成['Facebook', 'Instagram'],[1, 3]应该变成['Facebook', 'Twitter'],等等。它并不总是两个值,[3, 4, 16]和[1, 4, 6, 15, 16]之类的值也在数据集中。我会更新问题。
标签: list python-2.7 pandas dictionary replace