Pandas Dataframe可能使用了错误的列

时间:2015-05-25 08:23:10

标签: python pandas

我试图使用python脚本从庞大的数据库中获取数据。现在我有兴趣使用交易ID通过购物篮提取数据,但我得到了非常奇怪的结果,例如9000元素的平均购物袋大小以及商店中每个购物篮的烈酒。

我有一个想法,也许在阅读数据时,pandas会出于某种原因使用错误的列,因为如果按照user_id而不是transaction_id对它们进行排序,那么篮子大小就有意义了。

这可能吗?阅读csv时会出现问题吗?

这是处理按transaction_id排序的代码部分。它适用于较小的数据集,但对巨大的数据感到疯狂。但也许我有一个愚蠢的错误,我无法看到,我真的很感谢有人指出。

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] =  []

0 个答案:

没有答案