Панда пытается сказать вам, что вы пытаетесь получить доступ к столбцу с именем 2
во фрейме данных, в котором нет столбца с именем 2
.Вы не можете получить доступ к столбцам во фрейме данных так же, как вы получаете доступ к элементам в списке, то есть по индексу.
Однако вы можете извлечь идентификатор столбца из списка данных.столбцы фрейма, а затем используйте его для запроса фрейма данных.Вместо data[1][2]
вы можете сделать data[1][data[1].columns[2]]
.
Вот полный пример со списком с именем data
, содержащим два фрейма данных, каждый с двумя столбцами:
import pandas as pd
data = [
pd.DataFrame({"number": [1, 2, 3], "age": [10, 20, 30]}, columns=["number", "age"]),
pd.DataFrame({"value": [4, 5, 6], "bananas": [40, 50, 60]}, columns=["value", "bananas"])
]
# Print the content of each data frame
for df in data:
print df
Это распечатывает два фрейма данных:
number age
0 1 10
1 2 20
2 3 30
value bananas
0 4 40
1 5 50
2 6 60
Затем мы получаем доступ и печатаем только 2-й столбец каждого фрейма данных в списке, который печатает столбцы age
и bananas
соответственно:
# Print 2nd column of 1st data frame
print data[0][data[0].columns[1]]
# Print 2nd column of 2nd data frame
print data[1][data[1].columns[1]]
Что дает:
0 10
1 20
2 30
Name: age, dtype: int64
0 40
1 50
2 60
Name: bananas, dtype: int64