繁体   English   中英

熊猫csv / multiindex子集

[英]Pandas csv/multiindex subsetting

我正在尝试读取具有两行标头信息作为multiindex的.csv文件,以便以后可以访问具有2个标识符的列。 该文件看起来像这样(制表符分隔),并且NA的值故意是这样的:

ind Human Human Human Mouse Mouse Mouse ...
(null) Codon Freq minmax Codon Freq minmax ...
0 ATG 12.5 -5.2 --- NA NA ...
1 AAA 8.9 -25.5 --- NA NA ...
2 GGA 16.5 12.4 ATG 11.9 6.5 ...

我可以读取带有两行标题的文件,但这会导致对象为“ pandas.core.frame.DataFrame”类,而不是“ pandas.core.index.MultiIndex”类:
data = pd.read_csv('alignment.csv', sep="\\t", header=[0,1])

当我尝试指定index_col = 0时(如本文档中的某些示例所示),我收到“ IndexError:列表索引超出范围”错误,它是针对一些相关问题的解决方案,但由于某些原因对我不起作用。

继续前进,我试图以各种方式对数据进行子集化,但所有方法都失败了。 我认为(我认为)最接近我想要做的是
temp = data.ix[:,[("","ind"),("Human","minmax")]]
...这至少为我提供了正确尺寸的DataFrame并正确标记,但所有值均已替换为NaN。 使用.loc给我一个关于排序不正确的错误,而且我根本无法使.xs正常工作。

本质上,我正在寻找一种基于种类和参数(例如human和minmax)对数据集进行子集化的方法。 我在这里浏览了几个相关的问题,但是还不能解决问题。 我怎样才能做到这一点?

嗯...似乎对我有用...您使用的是哪个版本的Pandas / Python?

df= pd.read_clipboard(header = [0,1], index_col=0)

df
Out[389]: 
ind    Human              Mouse               ...
(null) Codon  Freq minmax Codon  Freq minmax  ...
0        ATG  12.5   -5.2   ---   NaN    NaN  ...
1        AAA   8.9  -25.5   ---   NaN    NaN  ...
2        GGA  16.5   12.4   ATG  11.9    6.5  ...


df.Human.minmax
df.Human.minmax
Out[390]: 
0    -5.2
1   -25.5
2    12.4
Name: minmax, dtype: float64

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM