python - PANDAS 中高效的列索引和选择

标签 python pandas multiple-columns

我正在寻找从数据框中选择多列的最有效方法:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(4,8), columns = list('abcdefgh'))

result of code above

我只想选择以下列 a、c、e、f、g 的列,这可以通过使用索引来完成:

df.ix[:,[0,2,4,5,6]]

对于包含许多列的大型数据框,这似乎是一种低效的方法,如果可能的话,我宁愿按范围指定连续的列索引,但尝试如下所示,都会引发语法错误:

df.ix[:,[0,2,4:6]]

df.ix[:,[0,2,[4:6]]]

最佳答案

一旦选择了不相邻的列,您将支付负载。
如果您的数据是同质的,回退到 numpy 会给您带来显着的改进。

In [147]: %timeit df[['a','c','e','f','g']]
          %timeit df.values[:,[0,2,4,5,6]]
          %timeit df.ix[:,[0,2,4,5,6]]
          %timeit pd.DataFrame(df.values[:,[0,2,4,5,6]],columns=df.columns[[0,2,4,5,6]])
100 loops, best of 3: 2.67 ms per loop
10000 loops, best of 3: 58.7 µs per loop
1000 loops, best of 3: 1.81 ms per loop 
1000 loops, best of 3: 568 µs per loop

关于python - PANDAS 中高效的列索引和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36909107/

相关文章:

Oracle 多列分区与使用子分区

python - 带 Python 的 Vim : Make ":make" take me to the error

python - 当 terraform 应用 aws_spot_fleet_request 时,如何检索私有(private) IP 地址?

python - 解析主键不唯一的 CSV 中的唯一值

python - 有没有开源工具可以找到python程序的流程?

python - pd.read_csv 的截断问题

python - 如何使用Python从pandas数据框中提取日期?

python - 从当前日期将 csv 获取到 pandas 数据框中

sql-server-2008 - 是否可以在 MS SQL 中的同一个表的两列或更多列上创建全文索引?

r - 在 R 中编辑 DataTable 的特定列