嘿,我在使用Pandas在python中解析CSV时遇到了一些问题。
我的档案有这样的结构:
user_id, user_main_account_id, user_subbalance_id
abc1,uuid1,toJoin1
abc1,uuid1,toJoin2
abc2,uuid2,toJoin3
abc2,uuid2,toJoin4
字符串
我需要将它转换为包含多个子余额列的结尾格式,一个列接一个列,如下所示:
user_id ,user_main_account_id ,user_subbalance1_id ,user_subbalance2_id
abc1 ,uuid1 ,toJoin1 ,toJoin2
abc2 ,uuid2 ,toJoin3 ,toJoin4
型
如何使用python和Pandas轻松完成这一点?在我的尝试中,我最终得到了相同user_id的重复行,这是我想要避免的。
尝试通过唯一的user_id + main_account_id和main_account_id + subbalance_id分割CSV,但在合并时,我再次得到重复的结果。
4条答案
按热度按时间66bbxpm51#
代码:
字符串
输出量:
型
pdtvr36n2#
我建议你想想为什么你想这样做.但这是可行的:
字符串
uyto3xhc3#
代码:
字符串
93ze6v8z4#
如果你不必使用Pandas,或者只是不想使用,你可以使用Python的csv模块和一个简单的中间dict来完成这一点,该中间dict将其他列聚合在user_id下,比如:
字符串
您可以读取输入并填充该结构,如下所示:
型
您需要计算要创建的子余额列的最大数量:
型
然后循环遍历用户将每个子余额写入自己的行,确保用空空格填充短行以填充所有子余额列:
使用TypedDict可以让我在IDE中更轻松地完成此操作,并提供自动完成/建议和错误:
其他一切都保持不变。