Python 熊猫中数据帧列的索引
主要问题是创建一个包含分类因子索引的列表 有一个dataframe,其中有许多列类型,在导入带有Python 熊猫中数据帧列的索引,python,pandas,dataframe,Python,Pandas,Dataframe,主要问题是创建一个包含分类因子索引的列表 有一个dataframe,其中有许多列类型,在导入带有pd.read\u csv()的文件之前已确定 因此,我用列名称和它们的索引制作了一个表,然后自己取分类列 col_list = [i for i in (df.columns.get_values())] idx_list = [i for i in range(len(df.columns.get_values()))] column_num = pd.DataFrame(data = {'col
pd.read\u csv()
的文件之前已确定
因此,我用列名称和它们的索引制作了一个表,然后自己取分类列
col_list = [i for i in (df.columns.get_values())]
idx_list = [i for i in range(len(df.columns.get_values()))]
column_num = pd.DataFrame(data = {'column_name': col_list,
'idx_list': idx_list})
column_num
然后获取列名称表column\u name
和索引表idx\u list
column_name idx_list
...
Format_type 5
Geo_new 6
Age_min 7
Age_max 8
Sex 9
...
并在列表中插入分类列索引:
分类功能=[…5、6、9…]
所以,我自己填写这个清单。有没有办法创建列列表,这些列的值是自动的calegory
?我相信您需要索引:
df = pd.DataFrame({
'A':list('abcdef'),
'B':pd.Categorical([4,5,4,5,5,4]),
'C':[7,8,9,4,2,3],
'D': pd.Categorical([1,3,5,7,1,0]),
'E':[5,3,6,9,2,4],
'F':list('aaabbb')
})
c = df.select_dtypes('category').columns
print (c)
Index(['B', 'D'], dtype='object')
i = df.columns.get_indexer(df.select_dtypes('category').columns)
print (i)
[1 3]
此外,您的代码应该简单:
col_list = df.columns.tolist()
idx_list = range(len(col_list))
column_num = pd.DataFrame(data = {'column_name': col_list, 'idx_list': idx_list})
还有一种方法
category\u list=list(np.where(df.dtypes=='category')[0])
谢谢您的回答df.选择数据类型('category')。列
返回具有分类类型的列名称,但我需要它们的索引
col_list = df.columns.tolist()
idx_list = range(len(col_list))
column_num = pd.DataFrame(data = {'column_name': col_list, 'idx_list': idx_list})