假设我有一个不同类型的数据框。让float,string和int为列。
A B C
1 car 4.3 302
2 Lena -1.2 4
3 I 9.1 18
如何获取类型为“ float”的列?
而没有直接引用列名。
答案 0 :(得分:2)
答案 1 :(得分:2)
您可以尝试:
df.select_dtypes(float)
或
df.loc[:, df.dtypes == float]
答案 2 :(得分:0)
您可以为此使用列表推导:
这是一个示例数据框:
import pandas as pd
df = pd.DataFrame({'one' : pd.Series([10, 0, 10, 9], index=['a', 'b', 'c', 'd']), //
'two' : pd.Series([0, 0, 10., 4.6], index=['a', 'b', 'c', 'd']), //
'three' : pd.Series(['aaa', 'abc', 'def', 'fff'], index=['a', 'b', 'c', 'd'])})
print(df)
"""
one two three
a 10 0.0 5
b 0 0.0 -1
c 10 10.0 7
d 9 4.6 -1
"""
我的列类型是什么?
for col in df.columns:
print('col : ',col, ' , datatype: ',df[col].dtype)
"""
col: one , datatype: int64
col: two , datatype: float64
col: three , datatype: object
"""
返回类型为“ float”的列
print(df[[col for col in df.columns if df[col].dtype == 'float']])
"""
two
a 0.0
b 0.0
c 10.0
d 4.6
"""
返回多种列类型(float和int64)
print(df[[col for col in df.columns if df[col].dtype in ['float','int64']]])
"""
one two
a 10 0.0
b 0 0.0
c 10 10.0
d 9 4.6
"""