python - 'int' 对象没有属性 'split'
问题描述
我正在 python 中进行合并排序,但我有一个问题。当我尝试按分隔符(每行一个数字,返回字符串列表)拆分数据时,我无法将其转换为整数。你能帮我理解这个问题吗?我尝试将数据 csv 文件从水平数据格式转换为垂直数据以实现 eclat 算法。有谁能够帮我?
from sys import argv
import sys
from itertools import chain, combinations
import pandas as pd
data = pd.read_csv(r'2010.csv',engine='python', header=None)
def Read_Data(filename):
data = {}
trans = 0
for row in filename:
trans += 1
for item in row.split(','):
if item not in data:
data[item] = set()
data[item].add(trans)
return data
item = Read_Data(data)
解决方案
您可以在第二个循环之前进行type()检查,以确保您在str
. 您也可以使用枚举而不是使用trans
变量。此外,一个defaultdict比必须为每个项目设置一个集合要好。它会自动为您做到这一点。
from collections import defaultdict
def Read_Data(filename):
data = defaultdict(set)
for trans, row in enumerate(filename):
if isinstance(row, str):
for item in row.split(','):
data[item].add(trans)
else:
#something to this effect
data['numbers'].add(trans)
return data
推荐阅读
- optimization - 如何定义成本目标函数
- rust - 我可以用借来的元素对向量进行变异吗?
- c++ - 尝试将 std::;string 设为 void* 时的非法间接
- mqtt - 使用 MQTT 将数据发布到 Azure IoT Hub
- javascript - 如何在 Nuxt 项目中使用 JsPdf 和 Html2Canvas 打印我的文档?
- javascript - 如何自动翻转 CSS 卡直到一段时间并在单击按钮时使它们从屏幕上消失?
- javascript - 如何获取图像值并在反应中的任何其他 div 上实现?
- javascript - 如何根据另一个数组过滤来自一个数组的数据
- xml - 在 QT 中使用 QXmlStreamReader 读取 xml 属性错误
- html - “stroke”css 属性在我的 svg 中不起作用