У меня есть этот CSV-файл
id,adset_id,source
1,,google
2,23843814084680281,facebook
3,,google
4,23843814088700279,facebook
5,23843704830370464,facebook
Моя проблема заключается в том, что я пытаюсь прочитать его с помощью panda, поскольку я не могу передать схему panda, которая выводит схему для столбца adset_id
в значение float64 (посколькузначения NaN)
Так что, если я напишу это
import pandas as pd
df = pd.read_csv('/Users/test/Desktop/float.csv')
print(df)
, я получу научную запись для adset_id
результата:
id adset_id source
0 1 NaN google
1 2 2.384381e+16 facebook
2 3 NaN google
3 4 2.384381e+16 facebook
4 5 2.384370e+16 facebook
Я не смог найти никакого способачтобы исправить это, я попытался взломать и преобразовать это число в строку.Но для этого мне нужно сначала преобразовать его в 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
Как вы можетесм. 2 моих adset_id
округления:
23843814084680281
-> 23843814084680280
23843814088700279
-> 23843814088700280
Я просто хочу иметь возможность читать этот CSV для пандыфрейм данных и не получите adset_id
в качестве научной нотации, любое решение будет оценено