python - 如何从列中删除浮点值 - pandas

标签 python python-3.x pandas dataframe

我有一个如下所示的数据框

df = pd.DataFrame({
 'subject_id':[1,1,1,1,1,1],
  'val' :[5,6.4,5.4,6,6,6]
 })

如下图所示

enter image description here

我想从以 .[1-9] 结尾的 val 列中删除 values。基本上,我想保留像 5.06.0 这样的值,并删除像 5.46.4 等这样的值

虽然我在下面尝试过,但它并不准确

df['val'] = df['val'].astype(int)
df.drop_duplicates()  # it doesn't give expected output and not accurate.

我希望我的输出如下所示

enter image description here

最佳答案

第一个想法是将原始值与转换列与整数进行比较,同时将整数分配回预期输出(列中的整数):

s = df['val']
df['val'] = df['val'].astype(int)

df = df[df['val'] == s]
print (df)
   subject_id  val
0           1    5
3           1    6
4           1    6
5           1    6

另一个想法是测试 is_integer:

mask = df['val'].apply(lambda x: x.is_integer())
df['val'] = df['val'].astype(int)

df = df[mask]
print (df)

   subject_id  val
0           1    5
3           1    6
4           1    6
5           1    6

如果需要在输出中 float ,您可以使用:

df1 = df[ df['val'].astype(int) == df['val']]
print (df1)
   subject_id  val
0           1  5.0
3           1  6.0
4           1  6.0
5           1  6.0

关于python - 如何从列中删除浮点值 - pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57752092/

相关文章:

python - 以特定格式编写和读取字典(Python)

python - 在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误

python - 删除位于字符串开头的特殊字符

python-3.x - 如何在 AWS EMR 中将 Jupyter 笔记本设置为 Python3 而不是 Python2.7

python - 在 pandas 中合并两个以上的文件与一列和公共(public)索引

python - pandas pivot 改变 dtype

java - 使用 Java 与 Python 的 Selenium Webdriver

postgresql - Python3 中 psycopg2 游标的问题

python - 如果 'W' 在 'X' 中,则将 'Y' 附加到 'Z'

sql-server - 尚不支持pandas + pyodbc ODBC SQL类型-150