gpt4 book ai didi

python - 使用 pandas 读取包含许多命名列标签的 csv 文件

转载 作者:太空狗 更新时间:2023-10-30 00:45:25 26 4
gpt4 key购买 nike

我是 python 版 pandas 的新手。我有一个数据文件,它有多个行标签(每行)和列标签(每列),例如以下 3 种不同动物(狗、 bat 、鸵鸟)在多个记录时间(星期一早上、白天、晚上)的观察计数数据):

   ''    ,    ''      , colLabel:name    , dog   ,    bat     , Ostrich
'' , '' , colLabel:genus , Canis , Chiroptera , Struthio,
'' , '' , colLabel:activity, diurnal, nocturnal, diurnal
day , time of day, '' , , ,
Monday , morning , '' , 17 , 5 , 2
Monday , day , '' , 63 , 0 , 34
Monday , night , '' , 21 , 68 , 1
Friday , day , '' , 72 , 0 , 34

我想将这些数据读入 Pandas,其中行和列都是分层组织的。这样做的最佳方法是什么?

最佳答案

您可以使用 read_csvheaderindex_coltupleize_cols 参数:

In [1]: df = pd.read_csv('foo.csv', header=[0, 1, 2], index_col=[0, 1], tupleize_cols=False, sep='\s*,\s+')

注意:在 0.13 中,tupelize=False 将是默认值,因此您不需要使用它。

获取列级名称需要一些技巧:

In [2]: df.columns.names = df.columns[0]

In [3]: del df[df.columns[0]]

In [4]: df
Out[4]:
colLabel:name dog bat Ostrich
colLabel:genus Canis Chiroptera Struthio,
colLabel:activity diurnal nocturnal diurnal
day time of day
Monday morning 17 5 2
day 63 0 34
night 21 68 1
Friday day 72 0 34

关于python - 使用 pandas 读取包含许多命名列标签的 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18905057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com