【发布时间】:2012-11-27 09:54:04
【问题描述】:
在创建具有 MultiIndex 列的 DataFrame 时,似乎无法使用 df[df["AA"]>0.0] 之类的语法来选择/过滤行。
例如:
import pandas as pd
import numpy as np
dates = np.asarray(pd.date_range('1/1/2000', periods=8))
_metaInfo = pd.MultiIndex.from_tuples([('AA', '[m]'), ('BB', '[m]'), ('CC', '[s]'), ('DD', '[s]')], names=['parameter','unit'])
df = pd.DataFrame(randn(8, 4), index=dates, columns=_metaInfo)
print df[df['AA']>0.0]
df["AA"]>0.0 的结果是一个索引 DataFrame iso a Timeseries。这可能会导致崩溃。
当使用相同的元信息作为行的索引时,情况就不同了:
df1 = pandas.DataFrame(np.random.randn(4, 6), index=_metaInfo)
print df1[df1["AA"]>0.0]
产生:
[ 1.13268106 -0.06887761 0.68535054 2.49431163 -0.29349413 0.34772553]
AA 行中大于零的元素。这仅给出 AA 行的值,而不给出 DataFrame 的其他列的值。
有解决方法吗?我是否在尝试做不该做的事情?
【问题讨论】:
标签: pandas