相关疑难解决方法(0)

从Python Pandas聚合结果格式化/抑制科学记数法

如何修改pandas中groupby操作的输出格式,为大数字生成科学记数法.我知道如何在python中进行字符串格式化,但是在这里应用它时我感到很茫然.

df1.groupby('dept')['data1'].sum()

dept
value1       1.192433e+08
value2       1.293066e+08
value3       1.077142e+08
Run Code Online (Sandbox Code Playgroud)

如果我转换为字符串,这会抑制科学记数法,但现在我只是想知道如何字符串格式和添加小数.

sum_sales_dept.astype(str)
Run Code Online (Sandbox Code Playgroud)

python floating-point scientific-notation number-formatting pandas

127
推荐指数
7
解决办法
12万
查看次数

熊猫将科学记数法中的浮点数转换为字符串

我曾经read_csv()加载一个看起来像这样的数据集

userid
NaN
1.091178e+11
1.137856e+11
Run Code Online (Sandbox Code Playgroud)

我想将用户 ID 转换为字符串。一种解决方案是添加keep_default_na=Falseread_csv(),这是 SO 建议的:将长整数转换为熊猫中的字符串(以避免科学记数法)

假设我不想使用keep_default_na=False. 有什么方法可以将用户 ID 列转换为 str。

我试过了df.userid.astype(str),我1.091178e+11回来了。我期待的是扩展形式而不是科学形式的结果。

我该怎么办?

python pandas

6
推荐指数
1
解决办法
1万
查看次数

Python熊猫插入长整数

我正在尝试在 Pandas Dataframe 中插入长整数

import numpy as np
from pandas import DataFrame

data_scores = [(6311132704823138710, 273), (2685045978526272070, 23), (8921811264899370420, 45), (17019687244989530680L, 270), (9930107427299601010L, 273)]
dtype = [('uid', 'u8'), ('score', 'u8')]
data = np.zeros((len(data_scores),),dtype=dtype)
data[:] = data_scores
df_crawls = DataFrame(data)
print df_crawls.head()
Run Code Online (Sandbox Code Playgroud)

但是当我查看数据帧时,最后一个很长的值现在是负数:

                       uid 分数
0 6311132704823138710 273
1 2685045978526272070 23
2 8921811264899370420 45
3 -1427056828720020936 270
4 -8516636646409950606 273

uid 是 64 位无符号整数,所以 'u8' 应该是正确的 dtype 吗?有任何想法吗 ?

python numpy pandas

5
推荐指数
1
解决办法
7957
查看次数