Объединение параметра и значения при чтении в CSV-файлах - PullRequest
0 голосов
/ 24 августа 2018

Если у меня есть такой документ с повторяющимися именами столбцов в строке 1 и строке 2 и единицей измерения параметра в строке 3, то как мне вызвать pd.read_csv, чтобы он создавал фрейм данных с заголовками, имеющимиимя столбца и единицы измерения и значения?

Time    Speed   Torque
time    speed   torque 
seconds m/s Nm 
1   4000    229,5
2   4000    228,7
3   4000    230,1

1 Ответ

0 голосов
/ 24 августа 2018

Если хотите MultiIndex в столбцах, используйте параметры header=[0,1] для преобразования первой и второй строки без пропущенных строк:

import pandas as pd

temp=u"""Time    Speed   Torque
time    speed   torque 
seconds m/s Nm 
1   4000    229,5
2   4000    228,7
3   4000    230,1"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", header=[0,1], skiprows=[0])
print (df)
     time speed torque
  seconds   m/s     Nm
0       1  4000  229,5
1       2  4000  228,7
2       3  4000  230,1

print (df.columns)
MultiIndex(levels=[['speed', 'time', 'torque'], ['Nm', 'm/s', 'seconds']],
           labels=[[1, 0, 2], [2, 1, 0]])

import pandas as pd

temp=u"""Time    Speed   Torque
time    speed   torque 
seconds m/s Nm 
1   4000    229,5
2   4000    228,7
3   4000    230,1"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", header=[0,1], skiprows=[1])
print (df)
     Time Speed Torque
  seconds   m/s     Nm
0       1  4000  229,5
1       2  4000  228,7
2       3  4000  230,1

Если хотите опустить вторую и третью строкииспользуйте только skiprows параметр:

import pandas as pd

temp=u"""Time    Speed   Torque
time    speed   torque 
seconds m/s Nm 
1   4000    229,5
2   4000    228,7
3   4000    230,1"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), sep="\s+", skiprows=[1, 2])
print (df)
   Time  Speed Torque
0     1   4000  229,5
1     2   4000  228,7
2     3   4000  230,1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...