Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 如何将一列的值与另一列的索引或类别配对?

Python 如何将一列的值与另一列的索引或类别配对?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我试图使用pandas和groupby方法将特定列的值与指定索引(Start)配对。我的数据集是: Start Times Chicago 2 Detroit 0 Minnesota 3 New York 1 我想要实现的是: Start Int Time Pairs Chicago Detroit [2,0] Detroit Minnesota [0,3] Minnesota New Yor

我试图使用pandas和groupby方法将特定列的值与指定索引(Start)配对。我的数据集是:

     Start  Times
     Chicago    2
     Detroit    0
     Minnesota  3
     New York   1
我想要实现的是:

Start      Int      Time Pairs
Chicago   Detroit   [2,0]
Detroit   Minnesota [0,3]
Minnesota New York  [3,1]
这可能吗?我该怎么做?

这里有一个用于连接
系列的移位版本的:

df_ = (df.Start.astype(str)
               .shift(1)
               .str.cat(df.Start.astype(str), sep=',')[1:]
               .str.split(',', expand=True))
df_.columns = ['Start', 'Int']
df_['Time Pairs'] = (df.Times.astype(str).shift(1)
                             .str.cat(df.Times.astype(str))[1:]
                             .apply(list))


虽然没有明确pairinig值的标准(移动行?),但这是获得结果的(粗略)方法:

dftot = pd.DataFrame({'Start':df.Start[:-1].values,
                      'Int': df.Start[1:].values,
                      'Time Pairs' : [[i,j] for i,j in zip(df['Times'][:-1].values,df['Times'][1:].values)]})
输出

dftot

    Start     Int       Time Pairs
0   Chicago   Detroit   [2, 0]
1   Detroit   Minnesota [0, 3]
2   Minnesota New York  [3, 1]

配对值的标准是什么?不同的位置有一个唯一的旅行ID-通过时间对,我应该能够获得相同旅行ID的频率(计数)。我可以通过创建箱(例如[0,5],[5,10]ref.time列)使代码正常工作,但这不是我要的计数(频率)。理想情况下,我希望将我的数据集作为第二个附件进行排序,这样我就可以继续编写代码,并在每个实例之间获得正确的旅行ID计数。非常感谢,我现在将尝试答案,并尽快返回给您。极好的解决方案!!现在我可以得到所有适用的组合和时间对。非常感谢!!非常感谢您,您的解决方案也非常有效!
dftot

    Start     Int       Time Pairs
0   Chicago   Detroit   [2, 0]
1   Detroit   Minnesota [0, 3]
2   Minnesota New York  [3, 1]