我有一个在特定时间点观察的数据集,但这些时间点(以及它们之间的时间长度)因组而异 . 我正在尝试“填充”数据,以便将现有观察结果转移到缺失的单元格中 . 但是我只想在原始观察之后对一定数量的行进行此操作 . 例如,我可以有一个如下所示的数据集:
对于A组,我想填写2002年的值与2001年的值,2004年与2003年等等 . 我根本不想填写2000年,因为我没有前面的值 . 而且我也不想填写2011年的 Value ,因为“cyclelength”变量告诉我A组的观察结果应该每两年进行一次,所以我不希望将数据传递过去 . 2011年只是一个真正缺失的 Value .
同样,在B组中,我希望将2000年的 Value 推进到2001年,2002年和2003年(因为这里的“周期长度”是4年) . 我想把2004年的 Value 带到2005年,2006年和2007年,但不会超过这个 - 晚年应该保持失踪 .
我已经尝试使用“carryforward”命令进行设置,但是没有想出如何在指定的年数后按组不同来停止填充 . 有没有办法做到这一点,无论是结转还是其他?
这是自2000年以来作为常见问题记录的问题的变体:见
变化在于限制复制非缺失值的程度 . 但它容易陷入同样的想法 .
在某些年份记录了最后一个已知值,我们可以复制数据集:
该陈述预设了前一陈述的 sort
顺序 .
在Statalist()上,您需要记录 carryforward
是要从SSC安装的用户编写的命令 . 这也是一个很好的约定 .
在实践中,良好的数据管理是保持原始数据的准确到达,并在变量的克隆上执行此操作 . 迟早有人会要求查看原始值,然后你可能会非常尴尬 .
我想提出一个这样的数据框:
其中空白项(例如header_10
上面字典中的键)将收到None
. 我尝试了许多品种,df.loc
例如:
无济于事。当然,Pandas 中必须有一种快速的方法来追加行并自动增加索引?类似于INSERT INTO
仅使用 pythonic 代码的 SQL 语句?
对空列表使用 dict 理解None
,然后对元组列表使用扁平化:
关注本站官方公众号:程序员总部,领取三大福利! 福利一:python和前端辅导 福利二:进程序员交流微信群,专属于程序员的圈子 福利三:领取全套零基础视频教程(python,java,前端,php)
关注公众号回复python,免费领取,回复充值+你的账号,免费为您充值1000积分