如何将表中的客户名称从行转换为列值。
数据字典
“发票编号”:“Ketan patel”:nan,'03/25/2022':175264.0,'03/24/2022':175034.0,'03/22/2022':174548.0,‘阿尔门达·萨拉’:nan,'03/31/2022':176323.0,“2022年3月29日”:175934.0,‘哈桑’:nan,'Lara Brian ':nan,'03/28/2022':175668.0,'03/23/2022':174854.0},'销售额':“Ketan patel”:nan,'03/25/2022':477600.0,'03/24/2022':16800.0,'03/22/2022':315000.0,'Almenda sarah':nan,'03/31/2022':350200.0,'03/29/2022':263400.0,‘哈桑’:nan,'Lara Brian ':nan,'03/28/2022':232700.0,'03/23/2022':319600.0},“交付费用”:“Ketan patel”:nan,'03/25/2022':0.0,“2022年3月24日”:0.0,“2022年3月22日”:0.0,'Almenda sarah':nan,'03/31/2022':0.0,“2022年3月29日”:0.0,'哈桑':nan,'Lara Brian ':nan,'03/28/2022':0.0,“2022年3月23日”:0.0},“总销售额”:“Ketan patel”:nan,'03/25/2022':477600.0,'03/24/2022':16800.0,'03/22/2022':315000.0,'Almenda sarah':nan,'03/31/2022':350200.0,'03/29/2022':263400.0,‘哈桑’:nan,'Lara Brian ':nan,'03/28/2022':232700.0,'03/23/2022':319600.0
3条答案
按热度按时间wswtfjt71#
正如@Marcelo Paco 所提到的,您的
dict
不会生成与第一张图片匹配的 Dataframe ,但无论如何,这里有一个join
和ffill
的选项可以获得您期望的输出(* 从第一张图片/电子表格中显示的数据开始 *):输出:
nhaq1z212#
您给予以下数据框,它与屏幕截图略有不同(哈桑没有值):
建议稿
技巧是使用
cumsum - 1
构建gkey
列然后这个
gkey
对应于names
列表的索引,这允许我们拾取想要的名称。agg
函数通过列表名称加索引填充gkey列。最后为了可读性我将gkey列重命名为
结果
ix0qys7i3#
你可以添加一个
helper function
来检查字符串是否是日期:现在我们可以操作
df
来获得所需的结果:我们的
df
现在看起来像这样:注意:您提供的
Data dict
与您展示的图片不具有相同的数据,上面的结果反映的是Data dict
,不是图片。