获取数据框中的数据并将其放入另一个数据框中

时间:2017-10-25 16:38:53

标签: python pandas dataframe

我正在用python做我的第一个项目,我试图让一列成为一行。

我无权访问好的数据,因此我改用了这个数据:https://www.quandl.com/product/WIKIP/WIKI/PRICES-Quandl-End-Of-Day-Stocks-Info

我做了什么:

os.chdir('path')
df = pd.read_csv('WIKI_PRICES_212b326a081eacca455e13140d7bb9db.csv',usecols=['ticker','date','close','volume'])
df.index = df.date
del df['date']

我的df看起来像这样:

index             ticker                close  
1999-11-18        A                      44
1999-11-19        A                      40,4
.....            ....                    ....
2005-12-20        AA                      33
.....             Z                       37
2003-5-20         Z                       51

就像1500万行一样。我想要

Index             A                 AA        .....      ZZZ
1999-11-18       44                 ....                 price
1999-11-19       40,4               ....                 price  

编辑:以下部分不是“漂亮”但它有效,如果您有任何改进想法,我想阅读它。

#format date python
df.date = pd.to_datetime(df.date)
del df['volume']
#my columns stocks in a new df
df2 = df['ticker']
#to have theim only one time (3193 stocks)
df2 = list(set(df2))
df3 = pd.DataFrame(np.array(df2).reshape(3193,1))
df3.columns = ['Stocks']
#now i create a dates times index big enough
dates = pd.date_range('1975-01', '2017-08', freq='d')
#.T
df4 = df3.set_index('Stocks').T

#a dataframe with stock as column et date as index
df5 = pd.DataFrame(pd.np.empty((15554, 3193)))
df5.index = dates
df5.columns = df2

现在我的第一个df价格全部,我想拿价格并在我的df5中使用theim(空的一个以股票名称作为列,日期作为索引)。

拥有类似的东西(不是真实的数字)

dates     A       AA        ....        ZZZ
1975-01   nan     nan       ...         nan
....      100     3         ...         nan
2017-08   nan     5         ...         12

1 个答案:

答案 0 :(得分:0)

尝试

new_df = df.set_index(['index', 'ticker']).close.unstack()

或者

new_df = df.pivot('index', 'ticker', 'close')

你得到了

ticker      A       AA
index       
1999-11-18  44      None
1999-11-19  40,4    None
2005-12-20  None    33