Pat*_*tty 3 python indexing multi-index dataframe pandas
我创建了一个数据框:
df1 = pandas.read_csv(ifile_name, header=None, sep=r"\s+", usecols=[0,1,2,3,4],
index_col=[0,1,2], names=["year", "month", "day", "something1", "something2"])
Run Code Online (Sandbox Code Playgroud)
现在我想创建另一个年份> 2008的数据框.因此我试过:
df2 = df1[df1.year>2008]
Run Code Online (Sandbox Code Playgroud)
但得到错误:
AttributeError: 'DataFrame' object has no attribute 'year'
Run Code Online (Sandbox Code Playgroud)
我猜,它没有看到列中的"年份",因为我在索引中定义了它.但是,在这种情况下,如何根据年份> 2008获取数据?
使用名称获取级别,MultiIndex.get_level_values并为行选择创建布尔掩码:
df2 = df1[df1.index.get_level_values('year') > 2008]
Run Code Online (Sandbox Code Playgroud)
如果您打算进行修改,请创建一个副本,df1以便不对视图进行操作.
df2 = df1[df1.index.get_level_values('year') > 2008].copy()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |