Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果列中包含任何特殊字符,则重复行_Python_Pandas_Dataframe - Fatal编程技术网

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

Python 如果列中包含任何特殊字符,则重复行,python,pandas,dataframe,Python,Pandas,Dataframe,我已经编写了一个小型python程序来处理我收到的订单。但是由于我用来合并df的参考值发生了变化 例如: 问题是,我过去常常将旧的订单号合并到新的订单号,这样我就知道客户正在退货。但最近我开始收到3c456而不是3c456/4c345的部分订单。这意味着我的客户现在只更新一种产品。 我的pd.merge代码再也找不到偏序了 我的密码是 df = pd.merge(old_PO_file, New_PO_file, on =PO-number) 因为新订单是部分订单,可以是斜杠之前或之后的值。

我已经编写了一个小型python程序来处理我收到的订单。但是由于我用来合并df的参考值发生了变化

例如:

问题是,我过去常常将旧的订单号合并到新的订单号,这样我就知道客户正在退货。但最近我开始收到3c456而不是3c456/4c345的部分订单。这意味着我的客户现在只更新一种产品。 我的pd.merge代码再也找不到偏序了

我的密码是

df = pd.merge(old_PO_file, New_PO_file, on =PO-number)
因为新订单是部分订单,可以是斜杠之前或之后的值。 如果采购订单编号列中有斜杠(/),我想复制该单元格中的所有行

如果可能的话,请告诉我

感谢

您可以使用来创建原始数据帧的
系列

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

请分享问题中的代码。请花时间阅读这篇文章,以及如何提供答案,并相应地修改您的问题。这些提示可能也很有用。@PatrickHaugh刚刚添加了代码。它曾经是一个简单的pd.merge代码。所以你想把
3c456/4c345
行分成两行,一行是
3c456
行,一行是
4c345
行?@PatrickHaugh是的,你说得对,非常感谢。成功了。不过,我会花很多时间来理解你是如何做到的。。。。非常感谢。