使用唯一索引将每行保存到文件,并将值映射到索引

时间:2018-07-24 13:34:22

标签: python-3.x pandas dataframe

我有一个熊猫数据框,其中包含以下列:

Food:      Shoppers:                           Index:
Banana     Customer A                               1
Grape      Customer B                               2
Apple      Customer B                               3
Vanilla    ['Customer D', 'Customer A']             4
Berries    Customer C                               5
Lemon      ['Customer F','Customer A','Customer B'] 6
Nuts       Customer C                               7

我想将每个索引添加到包含“食物”列中每一行的文件中,以便每个文件看起来像这样:“ 1,香蕉”,“ 2,葡萄”等。

这是我保存文件的方式:

i = 0
for row in new_dataframe.values:
    file_title = '/Users/xxxx/Desktop/xx/xxx/xxxx/shopping/document{}.txt'.format(i)
    row.tofile(file_title, sep=",", format="%s")
    i += 1

然后,我想使用相同的索引来计算购物者的清单上是否有一项商品,我可以将其保存到另一个文件中。重要的是索引保持不变,以便以后可以将其映射回去。

文件应如下所示:

  Customer A, 1, 4, 6
  Customer B, 2, 3, 6
  Customer C, 5, 7

1 个答案:

答案 0 :(得分:1)

好像您需要平铺列表列,然后groupby

df.set_index('Index').Shoppers.apply(pd.Series).stack().reset_index().groupby(0)['Index'].agg(lambda x : ','.join(x.astype(str)))
Out[300]: 
0
CustomerA    1,4,6
CustomerB    2,3,6
CustomerC      5,7
CustomerD        4
CustomerF        6
Name: Index, dtype: object