【发布时间】:2018-06-11 15:40:17
【问题描述】:
我正在尝试通过逗号解析一列(也去除空格),然后将所有起点/终点组合旋转到新行中。以下是数据示例:
Origin Destination Weight
PVG AMS, FRA 10,000
CAN, XMN LAX, ORD 25,000
我在使用 pd.read_clipboard 复制上面的数据帧时遇到问题,所以这里是数据帧代码:
df = pd.DataFrame({'Origin': ['PVG', 'CAN, XMN'],
'Destination': ['AMS, FRA', 'LAX, ORD'],
'Weight': [10000, 25000]})
期望的输出是:
Origin Destination Weight
PVG AMS 10,000
PVG FRA 10,000
CAN LAX 25,000
CAN ORD 25,000
XMN LAX 25,000
XMN ORD 25,000
我一直在尝试使用:
df['Origin'].str.split(',', expand = True)
我曾尝试对起点和终点都执行此操作,这适用于将字符串解析为单独的列。我正在努力将所有可能的组合创建到单独的行中(我尝试使用 pivot_table 并且没有运气融化)。
【问题讨论】:
-
无论是我的答案,还是 jpp 的答案,都取决于您觉得更容易使用的内容。
-
@coldspeed 我不确定我是否只是不知道如何修改您/jpp 的答案以获得我正在寻找的东西,或者因为我正在寻找的答案是一个稍微不同的解决方案?在包示例中,p1 与#111 匹配,p2 与#222 匹配,依此类推...我试图解决的问题,使用包示例将是:p1 与#111 匹配的单独行,然后是#222,然后是#333。随着 p2 与 #111 匹配,然后是 #222,然后是 #333,依此类推。所以就像我说的,我不确定我是否不知道如何修改答案来解决我的问题,或者我需要找到不同的解决方案?
-
哦,我明白了。你想要一个笛卡尔积......
-
对不起我之前的评论,我的意图不是获得接受。我想改变你的心态,即首先回答不是选择最佳答案时使用的标准。采用这两种解决方案,在您的数据上进行测试,然后接受最适合您的一种。需要考虑的一些因素:性能和可读性。
标签: python pandas parsing pivot