首页 > 解决方案 > pandas数据框的数据框转换

问题描述

我想将数据框元素操作为元素的数据类型。下面的示例数据框。

A      B         C           D
1      2       12-03-2010   1
45     acxz    3-02-2010    3
43     2.9     14-08-2010   4
45.3   3.5     23-09-2019   2.46
nan    34.23   09-09-2020   09-02-2015
45     nan     sam          10-09-2016
24     45.23   02-03-2021   wax
xyz    32      raz          na

将此数据框转换为以下数据框。

A        B         C         D
int     int     datetime    int
int     string  datetime    int
int     float   datetime    int
float   float   datetime    float
string  float   datetime    datetime
int     string  string      datetime
int     float   datetime    string
string  int     string      string

谁能建议我使用熊猫从上述数据中获得以下数据框的任何方法。

标签: pythonpandasdataframe

解决方案


按类型使用DataFrame.applymap,转换为字符串并最后使用replace

df = pd.DataFrame({
    "a": [1, 0.01, 'aaa', pd.to_datetime('2015-01-01')],
    "b": ['yy', pd.to_datetime('2015-01-01'), 1, 0]
   
})

d = {"<class 'pandas._libs.tslibs.timestamps.Timestamp'>":'datetime',
     "<class 'int'>":'int',
     "<class 'float'>":'float',
     "<class 'str'>":'string'}
df = df.applymap(type).astype(str).replace(d)
print (df)
          a         b
0       int    string
1     float  datetime
2    string       int
3  datetime       int

推荐阅读