Выберите столбцы, сопоставив имя столбца - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть pd df, и я хочу выбрать один из столбцов, сопоставляя имена столбцов.

Например, если у меня есть определенное значение с именем «Division = 2».Я хочу использовать это, чтобы выбрать связанный столбец из следующей таблицы.В этом случае я хочу получить столбец df.iloc [:, 2].

Как мне это сделать?

 division=2 

        Year       1        2          3       4
  0     2024      1.007351 1.098082 1.033620   0.938746
  1     2025      1.023808 1.117399 1.036366   0.936205
  2     2026      1.036785 1.133247 1.040184   0.934735

1 Ответ

2 голосов
/ 24 сентября 2019

Вы почти там!Смотри ниже.Вы можете использовать переменную division вместо имени столбца (или в данном случае локатора).

Предупреждение: Важно отметить, что разница в имя столбца и локатор .ОП запрашивает имя столбца, но использует локатор (df.iloc) в вопросе.

Локатор:
.iloc[:, 2] вернет все строки в третьейстолбец (нумерация начинается с 0).И это может варьироваться, так как этот DataFrame был создан с помощью dict, который не сохраняет порядок .

Имя столбца:
df[2] или df.loc[:, 2] вернет все строки в столбце с именем 2 .

import pandas as pd

division = 2
data = {'Year': [2024, 2025, 2026],
        1: [1.007351, 1.023808, 1.036785],
        2: [1.098082, 1.117399, 1.133247],
        3: [1.033620, 1.036366, 1.040184],
        4: [0.938746, 0.936206, 0.934735]}

df = pd.DataFrame(data)

# Display DataFrame
print(df)
# 1) Display the output of column named 2.
print(df[division])
# 2) Display the output of column 2.
print(df.iloc[:, division])

Содержимое DataFrame:

          1         2         3         4  Year
0  1.007351  1.098082  1.033620  0.938746  2024
1  1.023808  1.117399  1.036366  0.936206  2025
2  1.036785  1.133247  1.040184  0.934735  2026

1) Вывод имени столбца:

print(df[division])
0    1.098082
1    1.117399
2    1.133247
Name: 2, dtype: float64

2) Выход для локатора колонок:

print(df.iloc[:, division])
0    1.033620
1    1.036366
2    1.040184
Name: 3, dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...