我有一个DataFrame列表,我想访问特定DataFrame的一列或多列。 DataFrames(dfs)列表:
[
var1 var1
14.171250 13.593813
13.578317 13.595329
10.301850 13.598456
9.930217 12.682156
6.192517 13.561943
10.89585 13.565149
6.197983 13.572509,
var1 var2
2.456183 5.907528
5.052017 5.955731
5.960000 5.972480
8.039317 5.984608
7.559217 5.985348
6.933633 5.979438,
var1 var1
14.171250 23.593813
23.578317 23.595329
56.301850 23.580139
90.930217 22.365676
89.192517 33.561943
86.23654 53.565149
90.63659 13.572509,
...]
现在,我想在我的第二个DataFrame中访问var2
列。
我尝试了以下内容,
for i, h in enumerate(dfs):
for col in i[1]:
colum = col['var2']
print(colum)
以上代码不起作用。如何访问第二个索引DataFrame的var2
?
答案 0 :(得分:1)
假设dfs
是您的数据框列表。
选项1:直接索引:
var2 = dfs[1]['var2']
选项2:使用df.loc
(显式):
var2 = dfs[1].loc[:, 'var2']
选项3:使用df.iloc
(基于索引 - 隐式):
var2 = dfs[1].iloc[:, 1] # assuming `var2` is the second column
enumerate
在每次迭代时返回一个(index,item)元组。因此,在您的代码中,i
是索引,h
是元素(数据框)。
for i, h in enumerate(dfs):
for col in i[1]:
colum = col['var2']
i[1]
会抛出TypeError
错误。你需要
for i, h in enumerate(dfs):
if i == 1:
column = h['var2']
break
如果您只需要数据框,则可以放弃循环并使用dfs[1]
。