Python 使用分号作为字符串(而不是列表)分隔聚合整数
在下面更新强> 我正在尝试合并和排序ID列表及其连接的唯一名称\u ID,以分号分隔。 例如:Python 使用分号作为字符串(而不是列表)分隔聚合整数,python,excel,pandas,Python,Excel,Pandas,在下面更新 我正在尝试合并和排序ID列表及其连接的唯一名称\u ID,以分号分隔。 例如: Name_ID Adress_ID Name_ID Adress_ID Name1 5875383 Name1 5875383; 5901847 Name1 5901847 Name2 5285200 Name2 5285200 to Name3 2342345; 6463736 Name
Name_ID Adress_ID Name_ID Adress_ID
Name1 5875383 Name1 5875383; 5901847
Name1 5901847 Name2 5285200
Name2 5285200 to Name3 2342345; 6463736
Name3 2342345
Name3 6463736
这是我当前的代码:
origin_file_path = Path("Folder/table.xlsx")
dest_file_path = Path("Folder/table_sorted.xlsx")
table = pd.read_excel(origin_file_path)
df1 = pd.DataFrame(table)
df1 = df1.groupby('Name_ID').agg(lambda x: x.tolist())
df1.to_excel(dest_file_path, sheet_name="Adress_IDs")
但它会像这样将其导出到excel文件:
Name_ID Adress_ID
Name1 [5875383, 5901847]
我找不到一种方法来告诉熊猫,它应该是一个列表以外的东西,或者格式不同。我也不确定以后使用类似openpyxl的东西来编辑它是否是个好主意
有人能告诉我最好的办法是摆脱列表格式,用分号而不是逗号分隔吗
更新:
用户将此链接链接到我。但我似乎无法组合“;”。使用lambda x:x.tolist()连接
生成TypeError:join()只接受一个参数(给定2个)
生成TypeError:()接受1个位置参数,但提供了2个
我也尝试过其他组合,但似乎没有一个能正确执行。删除lambda函数不是一个选项,因为它只会粘贴名称\u ID address\u ID一千次,而不是正确的名称和ID。@Trenton\u M Dupe已更改。如果没有更改,您是100%正确的。OP在这里问了相同的问题:。所以这是一个副本,应该关闭。@Trenton\u M Dupe的可能副本已更改。如果没有更改,您是100%正确的。OP在这里问了相同的问题:。所以这是一个副本,应该关闭。的可能副本
df1 = df1.groupby('Kartenname').agg(';'.join, lambda x: x.tolist())
df1 = df1.groupby('Kartenname').agg(lambda x: x.tolist(), ';'.join)