python – 将多个字符串值合并到一个df列中
发布时间:2020-12-20 11:06:28 所属栏目:Python 来源:网络整理
导读:道歉我多次尝试透过SO一直都是徒劳的.我需要以下方面的帮助: 我的df如下: import pandas as pddf = pd.DataFrame({'subject' : ['Eng','Math','Science'],'role' : ['Teacher','','Dr'],'ID' : ['123','444','NaN'] }) print(df) ID role subject0 123 Tea
道歉我多次尝试透过SO一直都是徒劳的.我需要以下方面的帮助:
我的df如下: import pandas as pd df = pd.DataFrame({'subject' : ['Eng','Math','Science'],'role' : ['Teacher','','Dr'],'ID' : ['123','444','NaN'] }) print(df) ID role subject 0 123 Teacher Eng 1 444 Math 2 NaN Dr Science 由于这可能是未经验证的数据,我通常会做的(在excel boo中)是创建一个备注字段,该字段聚合数据并且不会在上载时损坏任何好的数据. 所以我一直在玩itterrows试图循环通过df并将字段合并为一个.需要注意的是,我需要使用/ n来分隔同一列中的值(CHAR(10)for excel buffs) 所以我试过.. for index,row in df2.iterrows(): if row['ID'] and row['subject] and row['role'] == "": #search row for any data while leaving out blanks row['C_MEMO'] = row[['ID','subject','role']] else: pass 但这不是真的有效,任何建议/帮助将不胜感激. 我想要的输出: ID role subject C_MEMO 0 123 Teacher Eng 123,Teacher Eng 1 444 Math 444,Math 2 NaN Dr Science Dr,Science 要考虑的事项: 我正在使用多种数据类型. 我很高兴将新输出作为字符串. 解决方法
使用:
#first replace values df = df.replace(['','NaN'],np.nan) df["C_MEMO"] = df.apply(lambda x: 'n'.join(x.dropna()),axis=1) 或者,如果缺少的值只是字符串: df["C_MEMO"] = df.apply(lambda x: 'n'.join(x[~x.isin(['','NaN'])]),axis=1) print(df) subject role ID C_MEMO 0 Eng Teacher 123 EngnTeachern123 1 Math NaN 444 Mathn444 2 Science Dr NaN SciencenDr (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |