繁体   English   中英

Pandas以科学计数法读取整数列

[英]Pandas reads integer column in scientific notation

出于某种原因,当我用pd.read_csv导入我的csv文件时,我的整数列(跟随者数量)中的一个用科学记数法读取,即使我的值是整数而且显然不是科学记数法。

当我调用df["num_followers"].describe()时,请参阅下面的内容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

您可以将np.int64与apply( https://docs.scipy.org/doc/numpy-1.10.1/user/basics.types.html )一起使用。

import numpy as np

df['num_followers'] = df['num_followers'].apply(np.int64)

使用pd.read_csv中的pd.read_csv dtype=选项,例如

df = pd.read_csv('filename.csv', dtype={'num_followers': np.int64})

您当然可以在dict中为其他列指定dtypes。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM