Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫中数据帧列的索引_Python_Pandas_Dataframe - Fatal编程技术网

Python 熊猫中数据帧列的索引

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

主要问题是创建一个包含分类因子索引的列表

有一个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 = {'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})