繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

【dataframe】连接多个dataframe

作者/asadadsa 2019-08-19 09:23 0 来源: FX168财经网人物频道

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
open close
2016-02-01 8.08 7.93
2016-02-02 7.93 8.05
2016-02-03 7.97 7.97
#导入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
high low
2016-02-02 8.12 7.92
2016-02-03 8.00 7.91
2016-02-04 8.09 8.00
pd.concat([df1,df2],axis=1)
open close high low
2016-02-01 8.08 7.93 NaN NaN
2016-02-02 7.93 8.05 8.12 7.92
2016-02-03 7.97 7.97 8.00 7.91
2016-02-04 NaN NaN 8.09 8.00

纵向连接¶

# 获得一个dataframe类型的数据样例
df3=get_price('000001.XSHE',start_date='2016-02-03',end_date='2016-02-04',frequency='daily',fields=['open','close'])
df3
open close
2016-02-03 7.97 7.97
2016-02-04 8.00 8.05
pd.concat([df1,df3,df3],axis=0)
open close
2016-02-01 8.08 7.93
2016-02-02 7.93 8.05
2016-02-03 7.97 7.97
2016-02-03 7.97 7.97
2016-02-04 8.00 8.05
2016-02-03 7.97 7.97
2016-02-04 8.00 8.05

按索引链接——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
pe_ratio market_cap
code
000001.XSHE 8.5323 1950.5587
000002.XSHE 12.9400 2918.2539
# 获取股票基本信息,中文名称等
df2=get_all_securities(types=['stock'],date='2017-10-15')
# 显示前5个
df2.head(5)
display_name name start_date end_date type
000001.XSHE 平安银行 PAYH 1991-04-03 2200-01-01 stock
000002.XSHE 万科A WKA 1991-01-29 2200-01-01 stock
000004.XSHE 国农科技 GNKJ 1990-12-01 2200-01-01 stock
000005.XSHE 世纪星源 SJXY 1990-12-10 2200-01-01 stock
000006.XSHE 深振业A SZYA 1992-04-27 2200-01-01 stock
# 按照df1的index,将df1与df2两个dataframe链接起来
df1.join([df2])
pe_ratio market_cap display_name name start_date end_date type
code
000001.XSHE 8.5323 1950.5587 平安银行 PAYH 1991-04-03 2200-01-01 stock
000002.XSHE 12.9400 2918.2539 万科A WKA 1991-01-29 2200-01-01 stock
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2144文章4145粉丝45

    暂无个人简介信息

  • 梁孟梵

    人气2152文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 指导老师

    人气1856文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2296文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 刘钥钥1

    人气2016文章3119粉丝34

    专业从事现货黄金、现货白银模似实盘操作分析指导

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2320文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4728文章8329粉丝118

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...