合并Pandas数据帧中两列的值,应用函数进行重复数据消除和合并

2024-06-16 10:47:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我对熊猫还不太熟悉,但我还没有找到其他可以帮助我的问题。如果这是一个明显重复的问题,我先道歉。在

我有一个csv,有两列,如下所示:

phones1,phones2
0000,
,1111
2222#3333,3333#4444
5555#6666,777#8888

作为最终结果,我想要的是一个合并操作,它使用一些逻辑来清理分隔符(#)和重复数据消除值:

^{pr2}$

我想我需要一个函数来处理这个逻辑,以确保只保留唯一的值,并且以干净的方式添加分隔符-例如,单个值不会像#0000#那样结束。在

最好的办法是什么?在


Tags: csv数据函数方式逻辑分隔符办法pr2
1条回答
网友
1楼 · 发布于 2024-06-16 10:47:56

我们可以对每一行调用func并返回与“#”连接的唯一值:

In [18]:

def func(x):
    l = []
    r = []
    # handle NaN values
    if pd.notnull(x['phones1']):
        l = x['phones1'].split('#')    
    if pd.notnull(x['phones2']):
        r = x['phones2'].split('#')
    combined = set(l+r)
    return '#'.join(combined)

df['phones_merged'] = df.apply(lambda row: func(row), axis=1)
df
Out[18]:
     phones1    phones2       phones_merged
0       0000        NaN                0000
1        NaN       1111                1111
2  2222#3333  3333#4444      4444#2222#3333
3  5555#6666   777#8888  777#8888#6666#5555

相关问题 更多 >