在python中对不同的列进行分组

时间:2018-05-16 11:23:59

标签: python pandas matplotlib plot seaborn

我有一个csv文件,其中包含ID,时间及其距离,如下面的截图所示。 该文件包含某段时间间隔的行进距离。在python中是否有任何方法可以将所有“时间”列分组到该特定ID的一列中的所有“距离”列中。我的目标是在最后绘制特定ID的时间与距离。

或者python中是否有任何函数我可以绘制而不分组时间和距离列值。

我愿意接受任何建议:)

enter image description here

1 个答案:

答案 0 :(得分:3)

我相信在read_excel列名称发生更改后,可能会将.拆分为MultiIndex并重新使用stack

print (df)
   ID  Time(hr)  Distance Km  Time(hr).1  Distance Km.1  Time(hr).2  \
0   1         1            5           2             10           3   
1   2         2            0           2             10           3   

   Distance Km.2  
0             12  
1             15  

d = {'Time(hr)':'Time(hr).0','Distance Km':'Distance Km.0'}
df = df.set_index('ID').rename(columns=d)
df.columns = df.columns.str.split('.', expand=True)
df = df.stack().reset_index(level=1, drop=True).reset_index()
print (df)
   ID  Distance Km  Time(hr)
0   1            5         1
1   1           10         2
2   1           12         3
3   2            0         1
4   2           11         2
5   2           15         3

最后可以使用pivotplot

一起使用{}
df.pivot(index='Time(hr)', columns='ID', values='Distance Km').plot()

graph