Pandas数据帧可能使用了错误的列

2024-10-01 22:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python脚本从一个巨大的数据库中获取数据。现在我对使用事务ID通过购物篮提取数据很感兴趣,但是我得到了非常奇怪的结果,比如平均购物袋大小为9000个元素,商店中每个购物篮上都有烈性酒精。在

我有一个想法,也许pandas在读取数据时出于某种原因使用了错误的列,因为如果按用户标识而不是事务标识来排序,那么这个篮子的大小就有意义了

这可能吗?读csv的时候会出什么问题吗?在

这是按事务处理排序的代码部分,它在较小的数据集上运行得很好,但在处理大量数据时却变得疯狂。但也许我有一个我看不见的愚蠢的错误,我真的很感谢有人指出。在

dt = pd.read_csv("../data/DataMining_with_cl_nr.txt", sep=";", engine='python',usecols=['TSEKK_ID', 'BARCODE','D_INVENTSITE_ID'], chunksize=100000)
df = pd.concat(dt)

def rec_dd():

    return defaultdict(rec_dd)

lengths = []
shopdic = rec_dd()
for i in range(1,48):
    subset = df.loc[df['D_INVENTSITE_ID'] == i]

    if not subset.empty:
        transactions = list(set(subset['TSEKK_ID']))
        baskets = []
        for n in range(len(transactions)):
            check = transactions[n]
            basket = list(subset.loc[subset['TSEKK_ID'] == check]['BARCODE'])
            baskets.append(basket)
        length = [len(x) for x in baskets]
        lengths.append(length)
        shopdic[i] = baskets
    else:
        shopdic[i] =  []

Tags: 数据iniddffor错误事务dd

热门问题