我正在尝试使用列表从Pandas数据帧中提取行,但它无法完成。这是一个例子
# df
alleles chrom pos strand assembly# center protLSID assayLSID
rs#
TP3 A/C 0 3 + NaN NaN NaN NaN
TP7 A/T 0 7 + NaN NaN NaN NaN
TP12 T/A 0 12 + NaN NaN NaN NaN
TP15 C/A 0 15 + NaN NaN NaN NaN
TP18 C/T 0 18 + NaN NaN NaN NaN
test = ['TP3','TP12','TP18']
df.select(test)
这就是我尝试使用列表中的元素而做的事情,我收到此错误TypeError: 'Index' object is not callable
。我做错了什么?
答案 0 :(得分:8)
您可以使用df.loc[['TP3','TP12','TP18']]
这是一个小例子:
In [26]: df = pd.DataFrame({"a": [1,2,3], "b": [3,4,5], "c": [5,6,7]})
In [27]: df.index = ["x", "y", "z"]
In [28]: df
Out[28]:
a b c
x 1 3 5
y 2 4 6
z 3 5 7
[3 rows x 3 columns]
In [29]: df.loc[["x", "y"]]
Out[29]:
a b c
x 1 3 5
y 2 4 6
[2 rows x 3 columns]
答案 1 :(得分:1)
您可以按位置选择行:
var store = require('../store');
var actions = require('../actions');
// Somewhere inside your component...
store.dispatch(actions.someAction(data));
答案 2 :(得分:-1)
至少有 3 种方法可以访问 Pandas 数据帧的元素。
import pandas as pd
import numpy as np
df=pd.DataFrame(np.random.uniform(size=(10,10)),columns= list('PQRSTUVWXY'),index= list("ABCDEFGHIJ"))
使用 df[['P','Q']]
您只能访问数据框的列。您可以使用数据框的 dataframe.loc[]
(代表位置)或 dataframe.iloc[]
(代表索引位置)numpy 样式切片。
df.loc[:,['P','Q']]
以上将为您提供以“P”和“Q”命名的列。
df.loc[['A','B'],:]
以上将返回键为“A”和“B”的行。
您还可以使用 iloc
方法使用基于数字的切片。
df.iloc[:,[1,2]]
这将返回编号为 1 和 2 的列。 同时,
df.iloc[[1,2],:]
将返回第 1 行和第 2 行。 您可以通过
访问任何特定元素df.iloc[1,2]
或者,
df.loc['A','Q']