我以前从未与Pandas合作过,我正在寻求有关最佳行动方案的指导。
当前,我有一个excel(.xlsx)电子表格,正在读取到数据Pandas DataFrame中。在该Excel电子表格中,它包含帐户数据,文档控制编号,合同ID,制造商合同ID,序列号,包括排除,开始日期,结束日期和供应商客户ID。
根据该数据,需要将所有帐号从文档密钥co,文档控制编号,合同编号,制造商合同编号,序列号复制回每一行数据,包括排除,开始日期,结束日期和供应商客户ID。
以下是数据示例:
我已经阅读了DataFrame,并使用以下代码遍历了DataFrame:
#reads in template data. Keeps leading zeros in column B and prevents "NaN" from appearing in blank cells
df = pd.read_excel('Contracts.xlsx', converters = {'document_key_co' : lambda x: str(x)}, na_filter = False)
#iterates over rows
for row in df.itertuples():
print(row)
做完这些事情之后,那就是我被困住的地方。预期的结果是这样的:
如您所见,有三个帐户复制到每个合同ID。
我仔细阅读了Pandas文档,考虑将每个帐户分离到一个单独的DataFrame中,并使用concat /将其合并到另一个包含文档密钥共同客户ID的DataFrame中,但是感觉到这是很多额外的代码可能是一个更好的解决方案。
答案 0 :(得分:1)
我能够使用以下代码段完成任务:
concats = []
for x in df.account.values:
concats.append(df.copy())
concats[-1].account = x
pd.concat(concats)