我有以下数据。注意,对于FPEDATS和CUSIP的每个组合,有多个STATPERS。
CUSIP,STATPERS,NUMEST,FPEDATS
87482X10,20140417,4,20141231
87482X10,20140515,4,20141231
87482X10,20140619,5,20141231
12345678,20140717,3,20141231
12345678,20140814,5,20141231
87482X10,20140417,1,20151231
87482X10,20140515,2,20151231
87482X10,20140619,3,20151231
12345678,20140717,4,20151231
12345678,20140814,5,20151231
如果我使用panda.read_csv和columns = [" FPEDATS"," CUSIP"]。我得到以下内容。
STATPERS NUMEST
CUSIP FPEDATS
87482X10 2014-12-31 2014-04-17 4
2014-12-31 2014-05-15 4
2014-12-31 2014-06-19 5
12345678 2014-12-31 2014-07-17 3
2014-12-31 2014-08-14 5
87482X10 2015-12-31 2014-04-17 1
2015-12-31 2014-05-15 2
2015-12-31 2014-06-19 3
12345678 2015-12-31 2014-07-17 4
2015-12-31 2014-08-14 5
对于CUSIP和FPEDATS的每个组合,我感兴趣的是:
对于2,我的意思是:
STATPERS NUMEST
CUSIP FPEDATS
12345678 2014-12-31 2014-08-14 5
2015-12-31 2014-08-14 5
87482X10 2014-12-31 2014-06-19 5
2015-12-31 2014-06-19 3
对于3,我的意思是我想要像
这样的东西 STATPERS NUMEST Price
CUSIP FPEDATS
87482X10 2014-12-31 2014-04-17 4 2
2014-12-31 2014-05-15 4 2
2014-12-31 2014-06-19 5 2
12345678 2014-12-31 2014-07-17 3 4
2014-12-31 2014-08-14 5 4
87482X10 2015-12-31 2014-04-17 1 5
2015-12-31 2014-05-15 2 5
2015-12-31 2014-06-19 3 5
12345678 2015-12-31 2014-07-17 4 7
2015-12-31 2014-08-14 5 7
当我只想解析[(" CUSIP"," FPEDATS"," PRICE")](作为元组或熊猫系列的列表) )?有没有一种光滑的方式呢?
到目前为止,我想出解决所有这些问题的唯一方法是在csv包中使用csv reader来读取csvs,然后将所有内容都恢复为panda格式。我希望有一种更简单的方法。
更新:我通过MultiIndexing方法设法做到了2。基本上使用
计算MultiIndexc = analyst_file.groupby(["CUSIP", "FPEDATS"])["STATPERS"].max()
然后我们将这些索引写为元组列表并使用切片。 还是想做一些更光滑的事情。
答案 0 :(得分:1)
假设我们有以下DF:
In [193]: df
Out[193]:
STATPERS NUMEST
CUSIP FPEDATS
87482X10 2014-12-31 2014-04-17 4
2014-12-31 2014-05-15 4
2014-12-31 2014-06-19 5
12345678 2014-12-31 2014-07-17 3
2014-12-31 2014-08-14 5
87482X10 2015-12-31 2014-04-17 1
2015-12-31 2014-05-15 2
2015-12-31 2014-06-19 3
12345678 2015-12-31 2014-07-17 4
2015-12-31 2014-08-14 5
我们可以做到以下几点:
In [192]: df.groupby(level=[0,1]).agg({'STATPERS':'max','NUMEST':'mean'})
Out[192]:
STATPERS NUMEST
CUSIP FPEDATS
12345678 2014-12-31 2014-08-14 4.000000
2015-12-31 2014-08-14 4.500000
87482X10 2014-12-31 2014-06-19 4.333333
2015-12-31 2014-06-19 2.000000
PS请详细说明common to each combination of CUSIP and FPEDATS
- 它不清楚......