python Panda浮点数在转换为字符串时四舍五入
我有这个CSV文件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
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