小编use*_*212的帖子

将某些浮动数据帧列格式化为pandas中的百分比

我想在IPython笔记本上写一篇论文,但是遇到了显示格式的一些问题.说我有以下的数据帧df,有没有什么办法来格式化var1var2成2位小数和var3成比例.

       var1        var2         var3    
id                                              
0    1.458315    1.500092   -0.005709   
1    1.576704    1.608445   -0.005122    
2    1.629253    1.652577   -0.004754    
3    1.669331    1.685456   -0.003525   
4    1.705139    1.712096   -0.003134   
5    1.740447    1.741961   -0.001223   
6    1.775980    1.770801   -0.001723    
7    1.812037    1.799327   -0.002013    
8    1.853130    1.822982   -0.001396    
9    1.943985    1.868401    0.005732
Run Code Online (Sandbox Code Playgroud)

内部数字不会乘以100,例如-0.0057 = -0.57%.

python formatting pandas ipython-notebook

52
推荐指数
8
解决办法
7万
查看次数

Pandas`isin`功能的更快替代品

我有一个非常大的数据框df,看起来像:

ID       Value1    Value2
1345      3.2      332
1355      2.2      32
2346      1.0      11
3456      8.9      322
Run Code Online (Sandbox Code Playgroud)

我有一个包含ID子集的列表ID_list.我需要的一个子集dfID包含在ID_list.

目前,我正在使用df_sub=df[df.ID.isin(ID_list)]它.但这需要很多时间.IDs中包含的ID_list没有任何模式,因此它不在一定范围内.(我需要对许多类似的数据帧应用相同的操作.我想知道是否有更快的方法来执行此操作.如果将make ID作为索引,它会有很大帮助吗?

谢谢!

python numpy pandas

17
推荐指数
2
解决办法
2万
查看次数

如何在熊猫时间序列中基于5分钟间隔创建组ID?

我有一个时间序列数据框 df看起来像这样(时间seris发生在同一天,但在不同的时间:

                                id               val 
 time                    
2014-04-03 16:01:53             23              14389      
2014-04-03 16:01:54             28              14391             
2014-04-03 16:05:55             24              14393             
2014-04-03 16:06:25             23              14395             
2014-04-03 16:07:01             23              14395             
2014-04-03 16:10:09             23              14395             
2014-04-03 16:10:23             26              14397             
2014-04-03 16:10:57             26              14397             
2014-04-03 16:11:10             26              14397              
Run Code Online (Sandbox Code Playgroud)

我需要从开始每隔5分钟创建一个组16:00:00.即,在范围内的所有的行16:00:0016:05:00其新列的值period是1(行的每个组内的编号是不规则的,所以我不能简单地切断基团)

最终,数据应如下所示:

                                id               val           period 
time            
2014-04-03 16:01:53             23              14389             1
2014-04-03 16:01:54             28              14391             1
2014-04-03 16:05:55             24              14393             2
2014-04-03 16:06:25             23              14395             2
2014-04-03 16:07:01             23              14395 …
Run Code Online (Sandbox Code Playgroud)

python datetime numpy pandas

17
推荐指数
1
解决办法
8192
查看次数

Pandas中的Parse_dates

以下代码无法将我的日期列解析为csv文件中的日期.

data=pd.read_csv('c:/data.csv',parse_dates=True,keep_date_col = True) 
Run Code Online (Sandbox Code Playgroud)

要么

data=pd.read_csv('c:/data.csv',parse_dates=[0]) 
Run Code Online (Sandbox Code Playgroud)

数据如下

date          value 
30MAR1990    140000 
30JUN1990    30000  
30SEP1990    120000  
30DEC1990    34555
Run Code Online (Sandbox Code Playgroud)

我做错了什么?请帮忙!

谢谢.

python datetime pandas

16
推荐指数
2
解决办法
5万
查看次数

修复了Pandas或Statsmodels中的效果

是否有现有函数来估算Pandas或Statsmodels的固定效应(单向或双向).

以前在Statsmodels中有一个函数,但似乎已经停止了.在Pandas中,有一些叫做的东西plm,但是我无法导入或运行它pd.plm().

python regression pandas statsmodels

14
推荐指数
2
解决办法
2万
查看次数

将一列时间戳转换为pandas中的句点

我有一列时间戳需要转换为句点('月').例如

1985-12-31 00:00:00 to 1985-12
Run Code Online (Sandbox Code Playgroud)

Pandas有一个.to_period函数,但它只适用于时间戳索引,而不适用于列.那么你只能有一个期间索引,而不是一个期间列?

它只有在时间戳是唯一索引时才有效.也就是说,如果时间戳是multIndex的一部分,则.to_period()函数也不起作用.

似乎Pandas假设人们总是使用时间戳和句点作为索引,但不是单个列,显然不是这样.

无论如何,我可以解决这个问题?或者如果不是在熊猫中,它可以在numpy中完成吗?

谢谢!

python datetime numpy pandas

13
推荐指数
2
解决办法
2万
查看次数

在Pandas中查询HDF5

我有以下数据(18,619,211行)存储为hdf5文件中的pandas dataframe对象:

             date    id2         w
id                              
100010 1980-03-31   10401  0.000839
100010 1980-03-31   10604  0.020140
100010 1980-03-31   12490  0.026149
100010 1980-03-31   13047  0.033560
100010 1980-03-31   13303  0.001657
Run Code Online (Sandbox Code Playgroud)

id索引在哪里,其他是列.datenp.datetime64.我需要执行这样的查询(代码当然不起作用):

db=pd.HDFStore('database.h5')
data=db.select('df', where='id==id_i & date>bgdt & date<endt')
Run Code Online (Sandbox Code Playgroud)

注意id_i, bgdt, endt是所有变量,而不是实际值,需要在循环中传递.例如:

dates 是一个Pandas Period索引或时间戳索引,无论哪种方式,我都可以互相转换.

dates=['1990-01', 1990-04','1990-09',......]  
Run Code Online (Sandbox Code Playgroud)

id_list 是一个ID列表

id_list=[100010, 100011,1000012,.......]
Run Code Online (Sandbox Code Playgroud)

循环看起来像这样(我做循环的原因是因为数据很大,我有其他数据集在同一时间查询然后执行一些操作)

db=pd.HDFStore('database.h5')
for id_i in id_list:
    for date in dates:
        bgdt=date-1 (move to previous month)
        endt=date-60 (previous 60 month)
        data=db.select('df', where='index==id_i & date>bgdt & date<endt')
        ......
Run Code Online (Sandbox Code Playgroud)

这个问题有两个部分: …

python datetime hdf5 pytables pandas

12
推荐指数
1
解决办法
7243
查看次数

在熊猫队伍中排名

我有一个典型的"面板数据"(在计量经济学术语中,不是pandas面板对象).数据框有一Date列和一ID列,以及包含特定值的其他列.对于每个日期,我需要将基于V1的ID进行横截面排序为10组(十分位数),并创建一个名为rank_col(取值1到10)的新列来识别排名.然后将所有rank1,rank2,... rank10汇集在一起​​以获得一些统计数据,如mean,std.

这可以通过以下代码在SAS中轻松完成,它还说明了我的目的:

proc sort data=df;
    by Date;
proc rank data=df out=df_ranked groups=10;
    var V1;
    ranks rank_col;
    by Date;
run;
Run Code Online (Sandbox Code Playgroud)

df_rankeddf除了它有更多的列rank_col,其中包含每行所属的等级组之外,它是相同的.

对不起,我没有显示结构的示例数据,需要一个真实的长数据来说明.但SAS代码正好显示了我的目标.

谢谢你的帮助!

python group-by pandas

8
推荐指数
1
解决办法
6220
查看次数

在pandas数据帧中通过多索引选择(子集化)

我想知道是否有一种基于多索引选择或子集Pandas数据帧的简洁方法.我的数据看起来像这样(id和date是索引):

                        values                  
id     date
10113  2010-07-21      24.7000
       2010-07-22      25.2600  
       2010-07-23      25.2800  
       2010-07-26      25.3700 
       2010-07-27      25.2900 
10223  2011-07-21      24.7000
       2011-07-22      25.2600  
       2011-07-23      25.2800  
       2011-07-26      25.3700 
       2011-07-27      25.2900 
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

df.xs[10223).xs('2011-07-21':'2011-07-30')
Run Code Online (Sandbox Code Playgroud)

但上面的代码不适用于第二个xs().xs()只能选择一行,而不是数据帧的子集.我也试过df.query()df.ix(),但没有运气.

谢谢你的帮助!

python subset dataframe pandas

7
推荐指数
1
解决办法
6577
查看次数

Fama Macbeth回归Python(熊猫或Statsmodels)

计量经济学背景

Fama Macbeth回归指的是针对面板数据运行回归的过程(其中存在N个不同的个体并且每个个体对应于多个周期T,例如日,月,年).所以总共有N x T obs.请注意,如果面板数据不平衡,则可以.

Fama Macbeth回归是首先对每个时期进行跨部门的回归,即在给定的时间段内将N个人聚集在一起.为t = 1,...做这个.因此总共运行T回归.然后我们有每个自变量的时间序列系数.然后我们可以使用系数的时间序列进行假设检验.通常我们将平均值作为每个自变量的最终系数.我们使用t-stats来测试重要性.

我的问题

我的问题是在熊猫中实现这一点.从大熊猫的源代码中,我注意到有一个名为的过程fama_macbeth.但我找不到任何关于此的文件.

操作也可以轻松完成groupby.目前我这样做:

def fmreg(data,formula):
    return smf.ols(formula,data=data).fit().params[1]

res=df.groupby('date').apply(fmreg,'ret~var1')
Run Code Online (Sandbox Code Playgroud)

这是有效的,res是一个由系数索引date的系列和系列的值params[1],它是系数var1.但现在我想拥有更多自变量,我需要提取所有这些自变量的系数,但我无法弄清楚.我试过这个

def fmreg(data,formula):
    return smf.ols(formula,data=data).fit().params

res=df.groupby('date').apply(fmreg,'ret~var1+var2+var3')
Run Code Online (Sandbox Code Playgroud)

这不行.期望的结果是,res是由索引的数据帧date,以及数据帧的每列应包含各变量的系数intercept,var1,var2var3.

我也检查过statsmodels,他们也没有这样的内置程序.

是否有任何包可以产生出版品质的回归表?就像outreg2在Stata和texregR?谢谢你的帮助!

python r pandas statsmodels

7
推荐指数
1
解决办法
8370
查看次数