【问题标题】:How to create a list with the types of element of another list in Python如何在 Python 中使用另一个列表的元素类型创建一个列表
【发布时间】:2021-02-05 07:18:26
【问题描述】:

我想创建一个 DataFrame,每个数据列都有一个实例和该实例的类型,但我找不到创建类型列表的方法(以便将其放入 DataFrame)。

这是我想要的一个例子:

my_original_data = pd.DataFrame({'col1': [1,2,3],'col2':['Hello','foo','bar'],'col3':[dt.datetime(2000,1,1),dt.datetime(1999,12,2),dt.datetime(1950,5,3)]})

我想要一个新的 DataFrame,第一行 = 列名,第二行 = 第一个值,即 [1, 'Hello', dt.datetime(2000,1,1)] 和第三行 = 这些值的类型,即 [int, str, 日期]。

如何创建最后一行?

在将三个列表转换为 DataFrame 之前,我尝试过

first_values = [my_original_data.loc[0,column] for column in df.columns]
types = [type(my_original_data.loc[0,column]) for column in df.columns]

它返回“TypeError: 'list' object is not callable”。如果我尝试也一样

types = map(type,first_values)
list(types)

【问题讨论】:

    标签: python list types


    【解决方案1】:

    试试这个:

    cols = my_original_data.columns.tolist()
    data = my_original_data.loc[0].tolist()
    dtypes = list(map(type, data))
    
    new_df = pd.DataFrame([[cols], [data], [dtypes]], columns=['df_desc'])
    

    【讨论】:

      【解决方案2】:

      与你尝试过的类似:

      first = my_original_data.iloc[0,:].values
      types = [type(my_original_data.iloc[0,column]) for column in range(len(my_original_data.columns))]
      
      final_df = pd.DataFrame([first,types],index=['first','type'],columns = my_original_data.columns)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-11
        • 1970-01-01
        • 1970-01-01
        • 2014-04-12
        • 2020-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多