python Panda浮点数在转换为字符串时四舍五入

python Panda浮点数在转换为字符串时四舍五入,python,pandas,csv,scientific-notation,Python,Pandas,Csv,Scientific Notation,我有这个CSV文件 id,adset_id,source 1,,google 2,23843814084680281,facebook 3,,google 4,23843814088700279,facebook 5,23843704830370464,facebook 我的问题是,当我试图用panda读取它时,因为我无法传递模式panda推断adset\u id列的模式为float64(因为NaN值) 所以如果我写这个 import pandas as pd df = pd.read_cs

我有这个CSV文件

id,adset_id,source
1,,google
2,23843814084680281,facebook
3,,google
4,23843814088700279,facebook
5,23843704830370464,facebook
我的问题是,当我试图用panda读取它时,因为我无法传递模式panda推断
adset\u id
列的模式为float64(因为NaN值)

所以如果我写这个

import pandas as pd

df = pd.read_csv('/Users/test/Desktop/float.csv')
print(df)
我将获得
adset\u id
结果:

我找不到任何方法来解决这个问题,所以我尝试做了一个黑客,并将这个数字转换成字符串。但为了做到这一点,我需要先将其转换为
int64
,然后再将其转换为字符串

import pandas as pd
import numpy as np

df = pd.read_csv('/Users/test/Desktop/float.csv')

df = df.fillna({'adset_id':-1})
df['adset_id'] = df['adset_id'].astype('int64')
df['adset_id'] = df['adset_id'].astype('str')
df['adset_id'].replace('-1', np.NaN, inplace=True)

print(df)
结果是:

   id           adset_id    source
0   1                NaN    google
1   2  23843814084680280  facebook
2   3                NaN    google
3   4  23843814088700280  facebook
4   5  23843704830370464  facebook
正如您所看到的,我的
adset\u id
get round:
23843814084680281
->
23843814084680280

23843814088700279
->
23843814088700280

我只想能够将此CSV读取到熊猫数据帧,而不是将adset\U id作为科学符号,任何解决方案都将受到欢迎。查看
dtype
参数。您可以设置一个数据类型字典,以确保它是作为字符串读取的

df = pd.read_csv('PATH_TO_CSV.csv', dtype={'adset_id':str})
您还可以查看
na_值
keep_default_na
,以及
na_filter
参数,以帮助处理空值

pandas
中以显示数据的方式进行科学符号的“转换”。尝试在导入熊猫后立即添加以下代码

import pandas as pd
pd.options.display.float_format = '{:.2f}'.format
使用
pd.read\u csv('/Users/test/Desktop/float.csv',dtype={'adset\u id':object})
import pandas as pd
pd.options.display.float_format = '{:.2f}'.format