Как получить доступ к столбцу в фрейме данных, когда имя столбца хранится в переменной в python [duplicate]

Ошибки округления с плавающей запятой. 0,1 не могут быть представлены точно в базе-2, как в базе-10, из-за недостающего простого коэффициента 5. Так же, как 1/3 принимает бесконечное число цифр для представления в десятичной форме, но составляет «0,1» в базе-3, 0.1 принимает бесконечное число цифр в базе-2, где оно не находится в базе-10. И компьютеры не имеют бесконечного объема памяти.

4
задан lordingtar 8 February 2016 в 21:47
поделиться

3 ответа

Я думаю, вы можете использовать subset, созданную из list CONT:

print df
  age fnlwgt  capital-gain
0   a    9th             5
1   b    9th             6
2   c    8th             3

CONT = ['age','fnlwgt']

print df[CONT]
  age fnlwgt
0   a    9th
1   b    9th
2   c    8th

print df[CONT].count()
age       3
fnlwgt    3
dtype: int64

print df[['capital-gain']]
   capital-gain
0             5
1             6
2             3

Возможно, лучше, чем list есть dictionary, который создается to_dict :

d = df[CONT].count().to_dict()
print d
{'age': 3, 'fnlwgt': 3}
print d['age']
3
print d['fnlwgt']
3
0
ответ дан jezrael 23 August 2018 в 20:32
поделиться

try:

for column_name, column in df.transpose().iterrows(): 
    if column_name in CONT:
        print(df[column_name].count()) 
    else: 
        print('')

edit:

Для более точного ответа на ваш вопрос: вы можете использовать переменные для выбора cols двумя способами: df[list_of_columns] вернет DataFrame с подмножество cols в list_of_columns. df[column_name] вернет серию для column_name

2
ответ дан aiguofer 23 August 2018 в 20:32
поделиться

Далее будет напечатан счетчик каждого столбца в фрейме данных, если он является подмножеством вашего списка CONT.

CONT = ['age', 'fnlwgt', 'capital-gain', 'capital-loss']
df = pd.DataFrame(np.random.rand(5, 2), columns=CONT[:2])

>>> df
        age    fnlwgt
0  0.079796  0.736956
1  0.120187  0.778335
2  0.698782  0.691850
3  0.421074  0.369500
4  0.125983  0.454247

Выберите подмножество столбцов и выполните преобразование.

>>> df[[c for c in CONT if c in df]].count()
age       5
fnlwgt    5
dtype: int64
0
ответ дан Alexander 23 August 2018 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: