python - Python Dataframe 块列索引不正确
问题描述
我正在学习 DataFrame 分块。我的伪代码很简单:
- 将 SOURCE_FILE 分解成若干块
- 加载一个块(带循环)
- 添加一个带有预测标签的列和另一个有信心的列
- 将块写入驱动器
- 继续循环
第一个块按预期保存。其余块中的新列具有不正确的行索引。我无法弄清楚为什么会这样。将感谢所有帮助。
另外,我的分块伪代码是否正确?如果这是正确的方法,我有点困惑。
# create chunks
for chunk in pd.read_csv(SOURCE_FILE, chunksize = CHUNK_SIZE):
print('BATCH:', BATCH_NUMBER)
# machine translate
for row_index, text in enumerate(chunk.title):
print('Text:', text)
print('Row Index:', row_index)
(label, confidence) = MODEL.predict(text)
label = label[0]
confidence = confidence[0]
chunk.loc[row_index, 'Language'] = label[9:]
chunk.loc[row_index, 'Confidence'] = confidence
chunk.to_csv('Chunks/chunk' + str(BATCH_NUMBER) + '.csv' , index = False)
BATCH_NUMBER += 1
解决方案
这有点晚了,但我想回答这个问题,以防将来有人遇到同样的问题。您正在尝试将两个新列连接到具有两列的现有块。Pandas 使用列的索引并排连接列,第一个块的索引与两个新列的索引匹配,但其余块的索引更大,因此它们没有正确连接。使用重置其余块的索引
chunk.index = range(len(chunk))
它应该工作。
推荐阅读
- html - 如何使用 css 打破跨度元素?
- node.js - 我正在尝试在 atlas mongoDB 上添加多个用户
- arrays - 如何对输出进行排序,每个 ip 地址在 PowerShell 中都有最大值?
- git - 如何重置:Maven、GitFlow 和 GitLab
- sql-server - 在不提供输出参数的情况下调用 proc
- spring-boot - 将请求重定向到 Kubernetes 中的特定副本
- docker - openwrtorg/rootfs:19.07.4 实际上是如何构建的?
- python - .format() 转换成 python 字典
- ios - jsoup--jsoup如何采集动态数据和下拉刷新的下拉分页
- php - PHP 范围(数字和字母)