如何计算 Pandas 数据帧的一列中的浮点数或整数数?

How can I count the number of floats or integers in a column of a Pandas dataframe?

我有一个 Pandas 数据框,其中有一列是浮点型的。但是带小数的数字对此列没有意义。所以我想找出此列中有多少个浮点数,然后我想删除此列中有浮点数的整行。 另一种方法是计算整数的数量,然后从总行数中减去它。

示例数据集

我有:

A B C
0.5 0.1 2.0
0.8 0.9 3.5
0.6 0.2 1.0

我需要的:

首先计算浮点数或整数:

C 1(因为“C”列中只有一个浮点数或)或者:C 2(因为“C”列中有两个整数)

第二次删除带浮点数的行:

A B C
0.5 0.1 2.0
0.6 0.2 1.0

我尝试用处理缺失值的方式来处理这个问题,但这没有用。

# Count Integers
print(Data.is_integer().sum())
# Delete rows where "C" is not an integer
Data=Data.drop(Data[Data.C.is_integer()=0].index)

两者都没有 work.I 在 Colab 中使用 Python 顺便说一句

整数和浮点数是两种不同的数值数据。整数(通常称为 int)是没有小数点的数字。 float 是一个浮点数,这意味着它是一个有小数位的数字。当需要更高的精度时使用浮点数。所以在这种情况下,你整体使用浮点数,你不需要整数

你可以编写一个函数,在其中传递 .is_integer() == True 的条件,这将 return 数字,在其他条件下你可以将其输出为 numpy.nan,稍后使用 .dropna 函数删除所有 nan 单位。

根据我的理解,您可以尝试使用 mod 并过滤 mod 为 0:

的行
df[df['C'].mod(1).eq(0)]

     A    B    C
0  0.5  0.1  2.0
2  0.6  0.2  1.0

您可以使用取模运算符删除 C 列的数字带有小数部分的所有行。

您可能还想将列 'C' 转换为整数。

import pandas as pd 

df = pd.DataFrame({'A':[0.5,0.8,0.6], 'B':[0.1, 0.9, 0.2], 'C':[2.0, 3.5, 1.0]})

df = df[df['C'] % 1 == 0]

df['C'] = df['C'].astype(int)