dataframe 上下拼接_Python里的数据分析利器|用Pandas“花式拼接各种表格”

本文详细介绍了使用Pandas库进行数据拼接和合并的方法,包括.append()、pd.concat()和pd.merge()。通过实例展示了如何进行上下、左右拼接以及不同形式的合并操作,如内连接、外连接、左连接和右连接,同时提到了如何处理不同格式和索引的表格数据。
摘要由CSDN通过智能技术生成

d582fdcd35201aae0c8f36c6d38b084b.png

通常来说,我们需要的数据不可能都来自同一张表格,所以了解如何对不同格式的表格进行拼接、合并是非常重要的。

本文将介绍Pandas库中常用的合并表格的方法,包括.append(), pd.concat(), pd.merge(), 并配合实例进行讲解。

01

上下拼接

.append()【1】方法可以实现表格的上下拼接,一般来说它们会有相同的列名,比如,上下拼接两只股票的日线数据。

import tushare as ts
import pandas as pd

pd.set_option('expand_frame_repr', False)  # 显示所有列
ts.set_token('your token')
pro = ts.pro_api()

df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180705')
df1 = pro.daily(ts_code='000002.SZ', start_date='20180701', end_date='20180705')
print(df)
print(df1)


     ts_code trade_date  open  high   low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705  8.62  8.73  8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704  8.63  8.75  8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703  8.69  8.70  8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702  9.05  9.05  8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg        vol       amount
0  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22  267278.61   619393.007
1  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79  249881.03   582470.214
2  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72  549964.88  1274023.575
3  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32  846203.86  1981131.638

print(df.append(df1))

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705   8.62   8.73   8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704   8.63   8.75   8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703   8.69   8.70   8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702   9.05   9.05   8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868
0  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22   267278.61   619393.007
1  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79   249881.03   582470.214
2  000002.SZ   20180703  23.10  23.48  22.80  23.42      22.80    0.62     2.72   549964.88  1274023.575
3  000002.SZ   20180702  24.50  24.55  22.52  22.80      24.60   -1.80    -7.32   846203.86  1981131.638

表格df的数据在上,表格df1的数据在下,注意到拼接之后的索引并没有随新表更新,这一问题可以通过设置参数ignore_index=True来解决。

print(df.append(df1, ignore_index=True))

     ts_code trade_date   open   high    low  close  pre_close  change  pct_chg         vol       amount
0  000001.SZ   20180705   8.62   8.73   8.55   8.60       8.61   -0.01    -0.12   835768.77   722169.579
1  000001.SZ   20180704   8.63   8.75   8.61   8.61       8.67   -0.06    -0.69   711153.37   617278.559
2  000001.SZ   20180703   8.69   8.70   8.45   8.67       8.61    0.06     0.70  1274838.57  1096657.033
3  000001.SZ   20180702   9.05   9.05   8.55   8.61       9.09   -0.48    -5.28  1315520.13  1158545.868
4  000002.SZ   20180705  23.02  23.41  22.85  23.05      23.00    0.05     0.22   267278.61   619393.007
5  000002.SZ   20180704  23.46  23.75  23.00  23.00      23.42   -0.42    -1.79   249881.03   582470.214
6  000002.S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值