Если у меня есть такой документ, с именами столбцов, которые повторяются в строке 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
Если вы хотите, чтобы в 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