小编Ste*_*rpe的帖子

按字母顺序,优雅地对数据降序然后按索引对 Pandas 系列进行排序

我正在寻找一种通过数据降序对熊猫系列进行排序的平滑方法,然后是索引升序。我一直在查看文档和 Stackoverflow,但找不到直接的方法。

该系列大约有 5000 个条目,是使用 NLTK 进行 tf-idf 分析的结果。

但是,下面我提供了一个非常小的数据样本来说明问题。

import pandas as pd

index = ['146tf150p', 'anytime', '645', 'blank', 'anything']
tfidf = [1.000000, 1.000000, 1.000000, 0.932702, 1.000000]

tfidfmax = pd.Series(tfidf, index=index)
Run Code Online (Sandbox Code Playgroud)

现在我只是将 Series 转换为 DataFrame,重置索引,进行排序然后设置索引,但我觉得这是一个很大的弯路。

frame = pd.DataFrame(tfidfmax , columns=['data']).reset_index().sort_values(['data','index'], ascending=[False, True]).set_index(['index'])
3.02 ms ± 102 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
Run Code Online (Sandbox Code Playgroud)

我期待着您的建议!

python sorting numpy python-3.x pandas

3
推荐指数
1
解决办法
1567
查看次数

kafka-python使用者从偏移量开始读取(自动)

我正在尝试使用kafka-python构建一个应用程序,其中消费者从一系列主题中读取数据.非常重要的是,消费者永远不会两次读取相同的消息,但也永远不会错过消息.

一切似乎工作正常,除非我关闭消费者(例如失败)并尝试从偏移开始阅读.我只能读取主题中的所有消息(创建双读)或仅侦听新消息(并且错过在故障期间发出的消息).暂停消费者时我没有遇到这个问题.

我创建了一个孤立的模拟,以试图解决问题.

这里是通用生产者:

from time import sleep
from json import dumps
from kafka import KafkaProducer

producer = KafkaProducer(bootstrap_servers=['localhost:9092'])

x=0 # set manually to avoid duplicates 

for e in range(1000):
    if e <= x:
        pass
    else:
        data = dumps(
            {
            'number' : e
        }
        ).encode('utf-8')

        producer.send('numtest', value=data)
        print(e, ' send.')

        sleep(5)
Run Code Online (Sandbox Code Playgroud)

和消费者.如果auto_offset_reset设置为'earliest',则将再次读取所有消息.如果auto_offset_reset设置为'latest',则不会读取停机期间的消息.

from kafka import KafkaConsumer
from pymongo import MongoClient
from json import loads

## Retrieve …
Run Code Online (Sandbox Code Playgroud)

offset python-3.x apache-kafka kafka-consumer-api kafka-python

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

使用 xlwings 将 Excel 打印为 pdf

我正在尝试使用 .pdf 格式将 Excel 文件打印为 pdf xlwings。我正在使用excel api这个。

我已经通过两种方式尝试过:

1/ 使用PrintOut()PrintToFile参数的调用:

 wb.api.PrintOut(PrintToFile=True, PrToFileName="5.pdf", Preview=True)
Run Code Online (Sandbox Code Playgroud)

这里的问题是 Excel 只是打印文件,而忽略了我的其他设置。

2/ 使用 ExportAsFixedFormat

 wb.api.ExportAsFixedFormat(0, str(SwmId) + ".pdf")
Run Code Online (Sandbox Code Playgroud)

这里 Excel 闪烁了一下,但最终没有做任何事情。

作为记录:我不能使用宏并从 Python 调用它,因为我有大约一千个这样的 Excel 文件。所以,我不能把宏放在每一个中。在 VBA 中创建自定义函数而不是在每个文件中调用它可能是一种解决方法。但是,老实说,如果我可以在一行代码中直接从 Python 执行此操作会更容易。

python xlwings

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