Pandas dataframe получает имена столбцов и value_counts - PullRequest
0 голосов
/ 14 октября 2018

как получить все имена столбцов, где значения в столбцах 'f' или 't' в массив?

df['FTI'].value_counts()

вместо этого 'FTI' мне нужен массив возвращаемых столбцов.Возможно ли это?

Ответы [ 2 ]

0 голосов
/ 14 октября 2018

Да.Это возможно.Вот один из способов

Вы можете получить столбцы, подобные этим.

cols=[]
for col in df.columns:
    if df[col].str.contains('f|t').any()==True:
        cols.append(col)

Тогда вы можете просто использовать это для частот

f= pd.Series()
for col in cols:
    f=pd.concat([f,df[col].value_counts()])
0 голосов
/ 14 октября 2018

Воспроизводимый пример:

df = pd.DataFrame({'col1':[1,2,3], 'col2':['f', 'f', 'f'], 'col3': ['t','t','t'], 'col4':['d','d','d']})

    col1    col2    col3    col4
0   1       f       t       d
1   2       f       t       d
2   3       f       t       d

Так, что, используя eq и all:

>>> s = (df.eq('t') | df.eq('f')).all()

col1    False
col2     True
col3     True
col4    False
dtype: bool

Получитьимена:

>>> s[s].index.values
array(['col2', 'col3'], dtype=object)

Чтобы получить должности:

>>> np.flatnonzero(s) + 1
array([2, 3])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...