根据单元格类型扩展pandas列

时间:2019-03-13 09:49:06

标签: python pandas dataframe

我有以下数据框:

  field          value
0 longitude      100
1 altitude       200
2 location       China
3 date           20180303
......

我想将此数据帧转换为以下格式:

   field      string_value int_value datetime_value boolean_value float_value field_type
0  longitude  NA           NA        NA             NA            100         float
1  altitude   NA           NA        NA             NA            200         float
2  location   China        NA        NA             NA            NA          str
3  date       NA           NA        20180303       NA            NA          datetime
......

我该如何有效地做到这一点?我认为我可以使用apply来做到这一点,但这似乎很慢,因为它逐行通过数据帧。有更快的方法吗?

2 个答案:

答案 0 :(得分:3)

想法是获取Argument out of range exception个值,转换为字符串,然后将type转换为可读性更好的格式,然后对新列使用DataFrame.set_indexSeries.unstack和{{3} }设为原始:

map

答案 1 :(得分:-1)

我认为处理此问题的最有效方法是创建一个新列,将每个元素的类型存储在['value']中,然后将pandas.pivot_table()与index = ['field']一起使用,values = [ 'value'],columns是用于存储dtypes的列。