比方说,我有两个dataframes,并同时为列名:python熊猫如何根据子串合并/连接两个表?
table 1 columns:
[ShipNumber, TrackNumber, Comment, ShipDate, Quantity, Weight]
table 2 columns:
[ShipNumber, TrackNumber, AmountReceived]
我想合并两个表时是“ShipNumber”或从表2“轨段编号”可以在“评论”中找到从表1
而且,我会解释为什么
merged = pd.merge(df1,df2,how='left',left_on='Comment',right_on='ShipNumber')
不会在这种情况下工作。
“注释”列是可以包含任何内容的文本块,因此我无法进行类似tab2.ShipNumber == tab1.Comment的精确匹配,因为tab2.ShipNumber或tab2.TrackNumber可以作为子字符串tab1.Comment。
所需的输出表应具有的所有独特的列从两个表:
output table column names:
[ShipNumber, TrackNumber, Comment, ShipDate, Quantity, Weight, AmountReceived]
我希望我的问题是有道理的...... 任何帮助,真的很感谢!
注
的最终目标是与合并两套(shipnumber == shipnumber |轨段编号==轨段编号| shipnumber在评论|评论中轨段编号),但我已经创建了两个子集为前两个条件,现在我正在处理第三和第四个条件。
你可以在''Comment''列上使用正则表达式来创建一个新的'ExtractedNum'列来匹配看起来像ShipNumber或TrackNumber的东西吗?然后你可以合并新的ExtractedNum列。或者评论中可能有多于一个的数字? – nanojohn
ShipNumber和TrackNumber可能不会保持相同的格式....(少数例外存在,不想排除这些)。所以这就是为什么我想只匹配来源(表2)。和'评论'是一个文本的一块可以是任何东西。 – alwaysaskingquestions