【发布时间】:2021-05-07 15:37:17
【问题描述】:
我在 2 个列表中转换 2 个数据帧(我将有更多的 dfs),以按键列“CNPF_UF_MES”对它们进行分组。
所以我会有一个列表列表,每个列表都基于一个键值。
但我无法附加最终结果。
import pandas as pd
df1 = pd.DataFrame({
'CNPJ_UF_MES': ['1-MG', '1-MG', '2-MG'],
'CLIENTE_PAR_COMEX': ['1_2_3', '2_3_4', '3_4_5'],
'REG': ['1110', '1110', '1110'],
'COD_IP_PAR': ['200', '200', '200'],
'COD_CLIENTE': ['xxr', 'xxv', 'xxw'],
'IND_COMEX': ['wer', 'cad', 'sder'],
'IND_EXTEMP': ['key_1', 'key_2', 'key_3'],
'DT_INI': ['01032021', '01032021', '01032021'],
'DT_FIN': ['31032021', '31032021', '31032021'],
'VALOR': ['wer', 'cad', 'sder'],
'PIPE_FIN': ['', '', '']
})
df2 = pd.DataFrame({
'CNPJ_UF_MES': ['1-MG', '1-MG', '1-MG', '1-MG', '2-MG', '2-MG'],
'CLIENTE_PAR_COMEX': ['1_2_3', '2_3_4', '3_4_5','1_2_3', '2_3_4', '3_4_5'],
'REG': ['1110', '1110', '1110', '1110', '1110', '1110'],
'COD_MCAPT': ['C-200', 'C-200', 'C-200', 'C-200', 'C-200', 'C-200'],
'DT_OP': ['07032021', '07032021', '07032021', '08032021', '08032021', '08032021'],
'VALOR': ['1', '2', '3', '1', '2', '3'],
'QTD': ['2', '2', '2', '2', '2', '2'],
'CNPJ_ADQUI': ['123', '123', '123', '123', '123', '123'],
'PIPE_FIN': ['', '', '', '', '', '']
})
list1 = df1.values.tolist()
#print(list1)
values = set(map(lambda x:x[0], list1))
newlist1 = [[y for y in list1 if y[0]==x] for x in values]
print(newlist1)
list2 = df2.values.tolist()
#print(list2)
values = set(map(lambda x:x[0], list2))
newlist2 = [[y for y in list2 if y[0]==x] for x in values]
print(newlist2)
##here is my problem:
list3 = newlist1.append(newlist2)
print(list3)
我希望有这个键列附加的列表列表。
有什么想法吗?
这是预期的输出:
[[
['2-MG', '3_4_5', '1110', '200', 'xxw', 'sder', 'key_3', '01032021', '31032021', 'sder', ''],
['2-MG', '2_3_4', '1110', 'C-200', '08032021', '2', '2', '123', ''],
['2-MG', '2_3_4', '1110', 'C-200', '08032021', '2', '2', '123', '']
],
[
['1-MG', '1_2_3', '1110', '200', 'xxr', 'wer', 'key_1', '01032021', '31032021', 'wer', ''],
['1-MG', '2_3_4', '1110', '200', 'xxv', 'cad', 'key_2', '01032021', '31032021', 'cad', ''],
['1-MG', '1_2_3', '1110', 'C-200', '07032021', '1', '2', '123', ''],
['1-MG', '2_3_4', '1110', 'C-200', '07032021', '2', '2', '123', ''],
['1-MG', '3_4_5', '1110', 'C-200', '07032021', '3', '2', '123', ''],
['1-MG', '1_2_3', '1110', 'C-200', '08032021', '1', '2', '123', '']
]]
我稍后会处理这个列表并将它们写入 csv,每个 CSV 文件将按“CNPF_UF_MES”分组。
问候,
谷内
【问题讨论】:
-
你能分享一下你的预期输出吗?
-
你好,谢谢回复,刚刚编辑了问题。
标签: python pandas list dataframe