小编cat*_*s25的帖子

如何在describe()函数中打印Python中的整数?

我正在使用Python的pandas做一些统计工作,我有以下代码打印出数据描述(平均值,计数,中位数等).

data=pandas.read_csv(input_file)
print(data.describe())
Run Code Online (Sandbox Code Playgroud)

但我的数据非常大(大约400万行),每行都有非常小的数据.因此,不可避免地,计数会很大,而且平均值会非常小,因此Python会像这样打印它.

在此输入图像描述

我只是想完全打印这些数字只是为了易于使用和理解,例如它最好是4393476代替4.393476e+06.我用Google搜索了它,我发现的最多就是在Python中显示一个带有两个小数位的浮点数以及其他一些类似的帖子.但这只有在我已经在变量中有数字时才有效.虽然不是我的情况.在我的情况下,我没有这些数字.这些数字是由describe()函数创建的,所以我不知道我会得到什么数字.

对不起,如果这看起来像一个非常基本的问题,我仍然是Python新手.任何回应都是适用的.谢谢.

python pandas

11
推荐指数
2
解决办法
2万
查看次数

为什么我会收到“ValueError: NaTType 不支持 strftime”,即使它不是空的?

如果我错了,请原谅我,但是ValueError: NaTType does not support strftime当数据为空或为空时会发生AFAIK 。但我的数据不是。

假设我有这个数据框。

df = pd.DataFrame({'personnel_number': ['123', '345', '567', '789', '000', '4444'],
                 'expiry_date': ['2020-12-07', '2099-12-04', '2019-08-30', '2022-03-19', '2020-09-06', '9999-12-31']})
Run Code Online (Sandbox Code Playgroud)

我想使用以下代码将其转换为日期类型格式。

for exp_date in df['expiry_date']:
    date = pd.to_datetime(exp_date, errors='coerce').strftime('%Y-%m-%d')
    print(date)
Run Code Online (Sandbox Code Playgroud)

但是当循环到达最后一个数据('9999-12-31'日期一)时,我总是以某种方式得到这个错误。

ValueError: NaTType does not support strftime
Run Code Online (Sandbox Code Playgroud)

我认为 9999 年听起来不合理,但这是我拥有的数据,我无法更改它。那么,我能做什么?

python datetime pandas

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

使用 pandas 从列值计数中获取顶部行

假设我有这样的数据。这是对某些产品的一组评论。

prod_id text    rating
AB123   some text   5
AB123   some text   2
AB123   some text   4
AC456   some text   3
AC456   some text   2
AD777   some text   2
AD777   some text   5
AD777   some text   5
AD777   some text   4
AE999   some text   4
AF000   some text   5
AG222   some text   5
AG222   some text   3
AG222   some text   3
Run Code Online (Sandbox Code Playgroud)

我想知道哪个产品的评论最多(行数最多),因此我使用以下代码来获取前 3 个产品(我只需要 3 个评论最多的产品)。

s = df['prod_id'].value_counts().sort_values(ascending=False).head(3)
Run Code Online (Sandbox Code Playgroud)

然后我会得到这个结果。

AD777   4
AB123   3
AG222   3
Run Code Online (Sandbox Code Playgroud)

但我真正需要的是具有上述 id 的行。我需要所有 AD777、AB123 和 …

python pandas

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

如何在Python中使用多处理时显示进度条(tqdm)?

我有以下代码create_data()引用了我之前已经定义的函数。

%%time
from tqdm import tqdm
from multiprocessing import Pool
import pandas as pd
import os

with Pool(processes=os.cpu_count()) as pool:
    results = pool.map(create_data, date)
    data = [ent for sublist in results for ent in sublist]
    data = pd.DataFrame(data, columns = cols)
    data.to_csv("%s"%str(date), index=False)
Run Code Online (Sandbox Code Playgroud)

我基本上想create_data()在传递日期参数的同时打电话。然后获得的所有结果将被收集到results变量中。然后我会将它们全部合并到一个列表中并将其转换为数据框。该函数create_data计算量较大,计算时间较长。这就是为什么我需要进度条来查看进程。

我尝试将该行更改为以下内容。

results = list(tqdm(pool.map(create_od, date), total = os.cpu_count()))
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用。我已经等了很长一段时间了,没有进度条出现。我在这里该怎么办?

python multiprocessing progress-bar tqdm

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

标签 统计

python ×4

pandas ×3

datetime ×1

multiprocessing ×1

progress-bar ×1

tqdm ×1