字典键是数据框中的列,值是列的特征类型

Dictionary Keys are columns from dataframe and values are feature type of column

编写一个函数,其中 returns 一个字典,其中键是数据框的列名,值是 "numeric"、"categorical"、"ordinal" 之一"date/time",或"text",对应每一列的特征类型。

我能够将数据导入为数据框。然后我将 df 转换成字典。然后我将键作为列,但我在分配值时遇到了问题("numeric"、"categorical"、"ordinal"、"date/time" 或 "text" ) 到每一列。

# Importing the pandas package
import pandas as pd

def helper(df):
    # Creating data frame from csv.gz File. Enter the appropriate file path
    cobra = pd.read_csv(df, compression='gzip')
    cobra_dict = cobra.to_dict()
    dict_keys = cobra.keys()

    print(dict_keys)


helper(df)
Expected Results:
In [1]: helper(df[['offense_id','beat','x','y']])
Out[1]: {'beat': 'categorical',
         'offense_id': 'ordinal',
         'x': 'numeric',
         'y': 'numeric'}

IIUC,

如果你想要与上面的输出完全一样,你可能需要创建一个映射字典,但这应该可以工作,我们可以 zip 列和你的 dtypes 到两个列表中并创建一个 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)
在我自己的样本 df 上。
print(my_dict)    
{'A': dtype('O'), 'B': dtype('int64'), 'C': dtype('float64')}