pandas整合多份csv文件

trian里面有id和isbn 分别在user和book的csv文件中,布标整合成一个train
pandas整合多份csv文件_第1张图片
book里面的信息
pandas整合多份csv文件_第2张图片
都有isbn,根据这个整合

train=train_df.copy()
# for use in list(user.columns[1:].values):
#     train[use]=None
for bo in list(book.columns[1:].values):
    train[bo]=None

train

先创建出列名和内容,替换
pandas整合多份csv文件_第3张图片

for i in tqdm(range(len(test))):
    test_isbn=test.loc[i][1]
    book_hang=book[book.ISBN==test_isbn].index.tolist()[0]
    
    
    for bo in list(book.columns.values):
#         print(book.columns.get_loc(bo)) 所属列的index

        try:
            test[bo][i]=book.loc[book_hang][book.columns.get_loc(bo)]
        except:
            print(bo)

tqdm是为了显示进度,不然几十万数据也不知道到哪了
test_isbn=test.loc[i][1]得到isbn数值
book_hang=book[book.ISBN==test_isbn].index.tolist()[0]
不加[0]得到的是一个数组,这个是搜索相同元素返回index
这样就知道同样的isbn在book的哪一行了
for bo in list(book.columns.values):
遍历book的列名,用来替换train里面的None
test[bo][i]=book.loc[book_hang][book.columns.get_loc(bo)]
把内容取出来放到相应的位置
这样提取整合就结束了

你可能感兴趣的:(pandas,python)