为了账号安全,请及时绑定邮箱和手机立即绑定

Python 中是否有与 tsset 和 tsfill 等效的代码?

Python 中是否有与 tsset 和 tsfill 等效的代码?

慕标5832272 2021-07-01 14:47:28
我想知道 Python 中是否有一个等效的代码,它提供了与Stata 中的tsset和相同的功能tsfill, full。从Stata手册中,对的描述tsset如下:tsset 将内存中的数据声明为时间序列从Stata手册中,对的描述tsfill, full如下:tsfill用于使用tsset包含缺失值的新观测值来填补时间序列数据中的空白和面板数据中的空白。例如,可能观察到timevar= 1, 3, 5, 6, ... . . , 22 存在。tsfill将为timevar= 2 和timevar= 4创建包含所有缺失值的观察值。示例数据:data = {'date': ['2014-05-01','2014-05-01','2014-05-01','2014-05-01',         '2014-05-02','2014-05-02','2014-05-02','2014-05-03',         '2014-05-03','2014-05-03'],'id':[1, 2, 3, 4, 1,         2, 3, 1, 2, 4],'obs': [10, 5, 7, 3, 2,4, 3, 8, 6, 11]}df = pd.DataFrame(data, columns = ['date', 'id','obs'])df.index = df1['date']del df['date']df            id  obsdate               2014-05-01   1   102014-05-01   2    52014-05-01   3    72014-05-01   4    32014-05-02   1    22014-05-02   2    42014-05-02   3    32014-05-03   1    82014-05-03   2    62014-05-03   4   11在Stata中,您将使用tsset id date将数据声明为时间序列,然后将tsfill, full数据转换为以下内容:iddate2014-05-02 的4 和2014-05-03 的id3date现在出现在数据框中           id  obsdate               2014-05-01   1   102014-05-01   2    52014-05-01   3    72014-05-01   4    32014-05-02   1    22014-05-02   2    42014-05-02   3    32014-05-02   4    .2014-05-03   1    82014-05-03   2    62014-05-03   3    .2014-05-03   4    11Python 中是否有等效的代码来执行与 Stata 相同的输出?
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

以下对我有用:


data = {'date': ['2014-05-01','2014-05-01','2014-05-01','2014-05-01',

         '2014-05-02','2014-05-02','2014-05-02','2014-05-03',

         '2014-05-03','2014-05-03'],'id':[1, 2, 3, 4, 1,

         2, 3, 1, 2, 4],'obs': [10, 5, 7, 3, 2,4, 3, 8, 6, 11]}


df = pd.DataFrame(data, columns = ['date', 'id','obs'])


result = df.set_index(['id','date']).unstack(fill_value='.').stack().sort_index(level=1).reset_index()  

result = result.set_index('date')


In [1]: result

Out[1]: 

            id obs

date              

2014-05-01   1  10

2014-05-01   2   5

2014-05-01   3   7

2014-05-01   4   3

2014-05-02   1   2

2014-05-02   2   4

2014-05-02   3   3

2014-05-02   4   .

2014-05-03   1   8

2014-05-03   2   6

2014-05-03   3   .

2014-05-03   4  11


查看完整回答
反对 回复 2021-07-06
  • 1 回答
  • 0 关注
  • 295 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信