首页 > 解决方案 > '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)

标签: python

解决方案


您可以在第二个循环之前进行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

推荐阅读