我写了一个小python程序来处理我收到的订单。但是由于我用来合并我的df的参考值的变化被改变了。
示例:
问题是,我曾经将旧的PO编号合并到新的PO编号,以便我知道客户正在返回。但最近我开始收到3c456而不是3c456 / 4c345的部分订单。这意味着我的客户现在只更新一种产品。 我的pd.merge代码不再找到部分订单了。
我的代码是
df = pd.merge(old_PO_file, New_PO_file, on =PO-number)
因为新PO是部分的,可能是斜杠之前或之后的值。 如果该单元格中存在斜杠(/),我想复制PO编号列中的所有行。
如果有可能请告诉我。
由于
答案 0 :(得分:1)
您可以使用str.split
与stack
一起为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