pandas 如何判断一个 Dataframe 中的所有列是否都是对象数据类型?

velaa5lx  于 2023-03-21  发布在  其他
关注(0)|答案(4)|浏览(177)

假设我有一个DataFrame为data,我想确定 Dataframe 中的每一列是否都是一个对象,并将其用作if条件。
示例:

describe = data.describe
(if condition to find all the columns are 'object'):
  agg = data.agg(['a','b','c'])
  if not agg.empty:
    describe = pd.concat(describe,agg)
    describe = describe.round(2)
kknvjkwl

kknvjkwl1#

你的问题不是没有歧义,但你可能想合并dtypeseqall

if df.dtypes.eq(object).all():
    # do something

另一种选择:

if df.select_dtypes(exclude='object').empty:
     # do something
bkhjykvo

bkhjykvo2#

可以使用.dtypes
下面是一个例子:

import pandas as pd
df = pd.DataFrame({'A':[5,2,3], 'B':['a','b','c']})
>>> df.dtypes

A     int64
B    object
dtype: object

如果要查找所有对象列名

>>> [k for k,v in dict(df.dtypes).items() if v == object]

['B']
dhxwm5r4

dhxwm5r43#

使用DataFrame.select_dtypes

#get all columns by dtypes == object
print (df.select_dtypes('object'))

#processing only object columns - here call describe
agg = df.select_dtypes('object').describe()

#default describe omit non numeric columns
describe = df.describe()

#joined together
out = pd.concat([describe,agg], axis=1)

或者:

out = df.apply(lambda x: x.describe())
gg58donl

gg58donl4#

data.info()data.dtypes将给予列的总体统计信息。
如果需要在一个命令中显示每列的数据类型,请执行dict(data.dtypes)

for x in data.columns:
    if data[x].dtype == object:
        #do something

相关问题