【发布时间】:2019-08-27 06:46:45
【问题描述】:
由于某种原因,当我用pd.read_csv 导入我的csv 文件时,我的整数列之一(关注者数量)以科学计数法读取,即使我的值是整数并且显然不是科学计数法。
请看下面我打电话给df["num_followers"].describe()时看到的内容
我在这里查看了“抑制科学记数法”的所有答案,但没有找到任何可行的解决方案。
df['num_followers'].apply(lambda x: '{:.2f}'.format(x)) 只是将我的值转换为str。我尝试转换为 astype("float") 没有成功,值仍然是科学记数法,这弄乱了我的计算。有什么想法可以将其更改为int?
count 1.200000e+02
mean 4.959472e+04
std 3.816126e+05
min 0.000000e+00
25% 6.725000e+01
50% 2.165000e+02
75% 5.932500e+02
max 4.021842e+06
Name: num_followers, dtype: float64
编辑
我尝试了以下答案之一,也没有成功:
IN: df_train = pd.read_csv("social_media_train.csv", index_col = [0])
df_train["num_followers"].describe()
OUT: count 5.760000e+02
mean 8.530724e+04
std 9.101485e+05
min 0.000000e+00
25% 3.900000e+01
50% 1.505000e+02
75% 7.160000e+02
max 1.533854e+07
Name: num_followers, dtype: float64
IN: df_train['num_followers'] = df_train['num_followers'].apply(np.int64)
df_train["num_followers"].describe()
OUT:count 5.760000e+02
mean 8.530724e+04
std 9.101485e+05
min 0.000000e+00
25% 3.900000e+01
50% 1.505000e+02
75% 7.160000e+02
max 1.533854e+07
Name: num_followers, dtype: float64
【问题讨论】:
-
使用
df_train["num_followers"].describe().apply(lambda x: format(x, 'f'))有效,但之后如何保持非科学记数法的值?如果您之后调用describe(),您将再次看到相同的指数值 -
你得到这个问题的答案了吗?如果是,请您更新工作解决方案。