【问题标题】:how do i get the datatype of eachvalue in pandas我如何获取熊猫中每个值的数据类型
【发布时间】:2020-03-09 06:45:44
【问题描述】:

我的数据框 df 具有以下值:

0                                    abcc
1                                      11
2                                    TRUE
3                                 "123.5"
4                            192.168.1.55
5                   "123.4555, 123.53422"
6                              12/23/1999
7                                      AF
8                        9° 3' 33.228'' N
9                      9° 47' 20.6268'' W
10  "8° 3' 33.228'' N,8° 47' 20.6268'' W"
11                             1582088645

我转置了数据框并检查了 dtypes 是否显示了轴的序列号:

data=data.transpose()
    for i, j in data.dtypes.iteritems():
        print(i,j)
 0 object
 1 object
 .
 .
 .
 11 object

如何跳过这个序列号。所以我可以实现每个值的 dtype 吗? 我想要这样的东西

abcc object
10 int64
TRUE bool
“123.5” object
192.168.1.54 object
“123.4555, 123.53422” object
12/23/1998 object
AF object
8° 3' 33.228'' N object
8° 47' 20.6268'' W object
“8° 3' 33.228'' N,8° 47' 20.6268'' W” object
1582088644 int64

【问题讨论】:

  • 只需这样做:data.dtypes 将返回所有具有 dtypes 的列名称
  • @RaghulRaj 他只使用了 data.dtypes。
  • data.dtypes 工作它给了我索引的 dtype
  • 您的初始数据帧(转置前)data 仅包含一列。所以 pandas 已将所有值转换为object。看看Essential Basic Functionality 为个别列设置data types

标签: python pandas indexing types


【解决方案1】:

它有点不合常规,但给你,你想要的:

df =pd.DataFrame(data=["abcc", 11, "TRUE", "123.5", "192.168.1.55", "123.4555, 123.53422",
                       "12/23/1999","AF","9° 3' 33.228'' N", "9° 47' 20.6268'' W", 
                       "8° 3' 33.228'' N,8° 47' 20.6268'' W", 1582088645])
for col, dtype in zip(df.T.values[0],df.T.dtypes):
    print(col, dtype)

输出是:

abcc object
11 object
TRUE object
123.5 object
192.168.1.55 object
123.4555, 123.53422 object
12/23/1999 object
AF object
9° 3' 33.228'' N object
9° 47' 20.6268'' W object
8° 3' 33.228'' N,8° 47' 20.6268'' W object
1582088645 object

您必须小心,因为这仅适用于您提供的数据

【讨论】:

  • 在这种情况下,每个 dtype 的值都作为对象给出。所以它没有工作
  • 抱歉,您不能定义混合类型的 pandas 数据框列。答案正是您所要求的。
  • 是的,我知道。所以我首先通过转置将列转换为行
  • 这又给了1582088645 - dtype object ,正如你从你的帖子中看到的那样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-16
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多