Группировка разных столбцов в python - PullRequest
0 голосов
/ 16 мая 2018

У меня есть CSV-файл, который содержит идентификатор, время и расстояние, как на скриншоте ниже. Файл содержит расстояние, пройденное за некоторый интервал времени. Есть ли способ в Python, который я могу сгруппировать все столбец «Время» в один и все столбцы «Расстояние» в одном столбце для этого конкретного идентификатора. Моя цель состоит в том, чтобы построить время против расстояния этого конкретного идентификатора в конце.

Или в python есть функция, которую я могу построить без группировки значений столбцов Time и Distance.

Я открыт для любых предложений:)

enter image description here

1 Ответ

0 голосов
/ 16 мая 2018

Я полагаю, что после 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

Последним для разворота можно воспользоваться pivot с plot:

df.pivot(index='Time(hr)', columns='ID', values='Distance Km').plot()

graph

...