如果列包含Python Pandas中的任何特殊字符,则重复行

时间:2017-01-05 13:55:08

标签: python pandas dataframe

我写了一个小python程序来处理我收到的订单。但是由于我用来合并我的df的参考值的变化被改变了。

示例:

Data

问题是,我曾经将旧的PO编号合并到新的PO编号,以便我知道客户正在返回。但最近我开始收到3c456而不是3c456 / 4c345的部分订单。这意味着我的客户现在只更新一种产品。 我的pd.merge代码不再找到部分订单了。

我的代码是

df = pd.merge(old_PO_file, New_PO_file, on =PO-number)

因为新PO是部分的,可能是斜杠之前或之后的值。 如果该单元格中存在斜杠(/),我想复制PO编号列中的所有行。

如果有可能请告诉我。

由于

1 个答案:

答案 0 :(得分:1)

您可以使用str.splitstack一起为join创建Series原始DataFrame

print (df)
   Sold-to    PO-Number Sold-to-party
0     1234       6d1234   abc company
1     2345  3c456/4c345   edf company
2     5679        9f639   mno company

df1 = df.drop('PO-Number', axis=1) \
        .join(df['PO-Number'] \
        .str \
        .split('/', expand=True) \
        .stack() \
        .reset_index(level=1, drop=True).rename('PO-Number')) \
        .reset_index(drop=True)

print (df1)
   Sold-to Sold-to-party PO-Number
0     1234   abc company    6d1234
1     2345   edf company     3c456
2     2345   edf company     4c345
3     5679   mno company     9f639