2 回答

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
groupby允許您沿具有相同 level_values 的 MultiIndex 級(jí)別拆分 DataFrame。我們將使用DataFrame.xs刪除分組索引級(jí)別,只留下您關(guān)心的列。單獨(dú)的 DataFrame 存儲(chǔ)在字典中,由原始列 MultiIndex 的唯一級(jí)別 1 值作為鍵。
樣本數(shù)據(jù)
import pandas as pd
import numpy as np
np.random.seed(123)
df = pd.DataFrame(np.random.randint(1, 10, (4, 9)),
columns=pd.MultiIndex.from_product([['df1', 'df2', 'df3'],
['compass', 'gyro', 'accel']]))
# df1 df2 df3
# compass gyro accel compass gyro accel compass gyro accel
#0 3 3 7 2 4 7 2 1 2
#1 1 1 4 5 1 1 5 2 8
#2 4 3 5 8 3 5 9 1 8
#3 4 5 7 2 6 7 3 2 9
代碼
d = {idx: gp.xs(idx, level=1, axis=1) for idx,gp in df.groupby(level=1, axis=1)}
d['gyro']
# df1 df2 df3
#0 3 4 1
#1 1 1 2
#2 3 3 1
#3 5 6 2
由于這樣的拆分很容易獲得,groupby您甚至可能不需要存儲(chǔ)單獨(dú)的 DataFrame;您可以使用GroupBy.apply.

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以將前 3 列保存在 csv 文件中,并對(duì)其他 csv 文件重復(fù)該過程 2 次...
您可以像這樣選擇數(shù)據(jù)框的 3 列:
x = 0 data=pd.read_csv(file.csv, keep_default_na=False, skiprows=line_header, na_filter=False, usecols=[x,x+1,x+2])[[compass, accel, gyro]])
其中 x =“大數(shù)據(jù)框”的第一列
usecols 屬性在這種情況下非常有用
你可以閱讀更多關(guān)于:Pandas.read_csv
添加回答
舉報(bào)