【发布时间】:2014-09-05 23:33:35
【问题描述】:
我正在尝试使用 pandas 将三个单独的平面文件中的内容合并到一个 .csv 中。其中一个输出字段“StoreID”基于一个单独的 ID 值列表(“Stores.txt”)。本质上,我需要将合并的数据框发布为一系列 csv 行,同时将每个商店 ID 的结果附加到第三列中。我在迭代语法方面遇到问题。任何帮助将不胜感激!
import pandas as pd
items = pd.read_csv("Item_List.csv")
store_loc = pd.read_csv("Store_Locations.csv")
stores = open("Stores.txt")
for i in stores:
item_merged = items.merge(store_loc, on='itemCat')
item_merged['storeID'] = i
item_merged.to_csv("stores_items_output.csv", index=False)
假设商店.txt:
3
5
6
期望的输出,给定项目和位置的连接列表:
itemID,storeLocation,StoreID
12345,ABCDE,3
23456,ABCDE,3
34567,BCDEF,3
12345,ABCDE,5
23456,ABCDE,5
34567,BCDEF,5
12345,ABCDE,6
23456,ABCDE,6
34567,BCDEF,6
【问题讨论】:
-
听起来您正在尝试将 itemID 和 storeLocation 的组合 dfs 与每个 StoreID 复制,对吗?最好将它们连接起来,但在连接之前设置“StoreID”,此时您正在用最后一次设置操作覆盖每个合并,因此您的所有行都将具有相同的“storeID”。我只需创建一个临时 df 或初始合并,设置“storeID”列,然后合并或连接到您的 item_merged'df。
标签: python csv pandas iteration dataframe