dataframe 连接¶
concat¶
concat([df1,df2,...],axis=0)
- axis= 0 纵向;1 横向。
- 使用前需导入过pandas模块
- 使用时要注意连接的dataframe行列对齐
- 可以同时拼接多个dataframe
- 拼接是强制的,允许连接后存在同名的行或列,见纵向连接的第二个例子
# 获得一个dataframe类型的数据样例
df1=get_price('000001.XSHE',start_date='2016-02-01',end_date='2016-02-03',frequency='daily',fields=['open','close'])
df1
#导入pandas模块
import pandas as pd
横向连接¶
# 获得一个dataframe类型的数据样例
df2=get_price('000001.XSHE',start_date='2016-02-02',end_date='2016-02-04',frequency='daily',fields=['high','low'])
df2
pd.concat([df1,df2],axis=1)
纵向连接¶
# 获得一个dataframe类型的数据样例
df3=get_price('000001.XSHE',start_date='2016-02-03',end_date='2016-02-04',frequency='daily',fields=['open','close'])
df3
pd.concat([df1,df3,df3],axis=0)
按索引链接——join¶
df1.join([df2,df3,...])
- 含义为按照df1的索引,将df1,df2,df3...链接起来,返回一个链接后的dataframe。
- df1,df2,df3...皆为dataframe 使用样例:
# 获取两个股票某一天的财务数据pe与市值
q = query(
valuation.pe_ratio,valuation.market_cap,valuation.code
).filter(
valuation.code.in_(['000001.XSHE','000002.XSHE'])
)
df1 = get_fundamentals(q, '2017-10-15')
# 调整股票代码为index
df1.index=df1['code']
del df1['code']
df1
# 获取股票基本信息,中文名称等
df2=get_all_securities(types=['stock'],date='2017-10-15')
# 显示前5个
df2.head(5)
# 按照df1的index,将df1与df2两个dataframe链接起来
df1.join([df2])