Python 字典键是dataframe中的列,值是列的特征类型

Python 字典键是dataframe中的列,值是列的特征类型,python,pandas,dataframe,categorical-data,Python,Pandas,Dataframe,Categorical Data,编写一个函数,返回一个字典,其中键是数据框的列名,值是“数字”、“分类”、“序号”、“日期/时间”或“文本”中的一个,对应于每列的要素类型 我能够将数据作为数据帧导入。然后我把df转换成了一本字典。然后我得到了作为列的键,但是我在为每个列分配值(“数字”、“分类”、“序号”、“日期/时间”或“文本”)时遇到了问题 #导入熊猫包 作为pd进口熊猫 def助手(df): #从csv.gz文件创建数据帧。输入适当的文件路径 cobra=pd.read\u csv(df,compression='gzi

编写一个函数,返回一个字典,其中键是数据框的列名,值是“数字”、“分类”、“序号”、“日期/时间”或“文本”中的一个,对应于每列的要素类型

我能够将数据作为数据帧导入。然后我把df转换成了一本字典。然后我得到了作为列的键,但是我在为每个列分配值(“数字”、“分类”、“序号”、“日期/时间”或“文本”)时遇到了问题

#导入熊猫包
作为pd进口熊猫
def助手(df):
#从csv.gz文件创建数据帧。输入适当的文件路径
cobra=pd.read\u csv(df,compression='gzip')
cobra_dict=cobra.to_dict()
dict_keys=cobra.keys()
打印(dict_键)
助手(df)
预期结果:
在[1]中:helper(df['offension_id','beat','x','y']]
Out[1]:{'beat':'categorical',
“进攻id”:“序数”,
“x”:“numeric”,
'y':'numeric'}
IIUC

如果您希望与上面的输出完全相同,您可能需要创建映射dict,但这应该是可行的,我们可以将列和数据类型压缩到两个列表中,并创建一个列作为键、值作为数据类型的映射dict

def helper(df):
    # Creating data frame from csv.gz File. Enter the appropriate file path
    cobra = pd.read_csv(df, compression='gzip')
    cobra_dict = dict(zip(cobra.columns.tolist(),cobra .dtypes.tolist()))

    print(cobra_dict)
在我自己的样品上。
print(my_dict)    
{'A': dtype('O'), 'B': dtype('int64'), 'C': dtype('float64')}
IIUC

如果您希望与上面的输出完全相同,您可能需要创建映射dict,但这应该是可行的,我们可以将列和数据类型压缩到两个列表中,并创建一个列作为键、值作为数据类型的映射dict

def helper(df):
    # Creating data frame from csv.gz File. Enter the appropriate file path
    cobra = pd.read_csv(df, compression='gzip')
    cobra_dict = dict(zip(cobra.columns.tolist(),cobra .dtypes.tolist()))

    print(cobra_dict)
在我自己的样品上。
print(my_dict)    
{'A': dtype('O'), 'B': dtype('int64'), 'C': dtype('float64')}

你的问题在哪里?问题是我的一些列是分类的,一些是数字的……我如何将我的列分类,然后像上面显示的“预期结果”一样打印出来?@Vaibis我下面的回答有帮助吗?有。谢谢你!你的问题在哪里?问题是我的一些列是分类的,一些是数字的……我如何将我的列分类,然后像上面显示的“预期结果”一样打印出来?@Vaibis我下面的回答有帮助吗?有。谢谢你!