pd.concat() python API 官方参考链接 参考链接一 参考链接二
pandas.concat( objs,
axis=0,
join='outer',
join_axes=None,
ignore_index=False,
keys=None,
levels=None,
names=None,
verify_integrity=False,
copy=True)
参数含义:
实践案例:
import pandas as pd
import tushare as ts # 一个关于股票的公开数据集
横向连接,axis = 0 比如说,当我们需要某只股票1月和7月前几天的交易数据
report1 = ts.get_k_data('600036', start='2017-01-01', end='2017-01-05')
report2 = ts.get_k_data('600036', start='2017-07-01', end='2017-07-05')
report1
report2
pd.concat([report1, report2], axis=0)
纵向连接,axis = 1 比如说,我们需要观察8月份某只股票与上证指数的走势对比
stock = ts.get_k_data('600036', start='2017-08-01', end='2017-08-31')
sh = ts.get_k_data('sh', start='2017-08-01', end='2017-08-31')
trend = pd.concat([stock, sh], axis=1)
trend.head()
column name 有重复,似乎不是很好处理
trend = pd.concat([stock, sh], axis=1, keys=['zsyh', 'sh'])
trend.head()
import matplotlib.pyplot as plt
% matplotlib inline
# %matplotlib inline是一个魔法函数(Magic Functions)。
# 官方给出的定义是:IPython有一组预先定义好的所谓的魔法函数(Magic Functions),
# 你可以通过命令行的语法形式来访问它们。
# 比如在Jupyter Notebook中进行操作,由于 %matplotlib inline 的存在,
# 当输入plt.plot(x,y_1)后,不必再输入 plt.show(),图像将自动显示出来
trend.loc[:, [('zsyh', 'close'), ('sh', 'close')]].plot(kind='line', secondary_y=[('sh', 'close')])
上面使用了keys来创建了MultiIndexing,感觉还挺麻烦。现在换一种方法,来看看ignore_index的作用
trend = pd.concat([stock, sh], axis=1, ignore_index=True)
trend.head()
trend.rename(columns={2: 'zsyh_close', 9: 'sh_close'}, inplace=True)
trend.head()
trend.loc[:, ['zsyh_close', 'sh_close']].plot(kind='line', secondary_y=['sh_close'])