
查看所有数据 print(df)
import pandas as pd
pd.set_option('expand_frame_repr', False) # 当列太多的时候设置这个参数可以改变默认为不缺省显示
# pd.set_option('display.max_rows', 100) # 设置参数可以一次性显示出多少行 min_rows 为输出框显示多少行
# pd.set_option('precision', 1) # 设置浮点数的精度 保留几位小数 只是改变了显示时候的精度 不会影响原数据
df = pd.read_csv(filepath_or_buffer=r'C:UsersAdministratorDesktopwsj_stock_datadatash600009.csv',
encoding='gbk',
# parse_dates=['交易日期'], # 以日期格式显示而不是字符串
index_col=['交易日期']
)
print(df)
输出结果: '''
股票代码 股票名称 开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
交易日期
1998-02-18 sh600009 上海机场 10.00 10.28 8.90 9.05 6.41 133356100.0 1.267013e+09 2.443500e+09 8.145000e+09
1998-02-19 sh600009 虹桥机场 8.99 9.00 8.54 8.80 9.05 31182200.0 2.721070e+08 2.376000e+09 7.920000e+09
1998-02-20 sh600009 虹桥机场 8.80 9.08 8.66 8.88 8.80 15578600.0 1.380111e+08 2.397600e+09 7.992000e+09
1998-02-23 sh600009 虹桥机场 8.84 9.25 8.80 9.13 8.88 17831000.0 1.616534e+08 2.465100e+09 8.217000e+09
1998-02-24 sh600009 虹桥机场 9.17 9.18 8.82 8.89 9.13 11437700.0 1.029877e+08 2.400300e+09 8.001000e+09
... ... ... ... ... ... ... ... ... ... ... ...
2022-06-09 sh600009 上海机场 48.91 49.33 48.60 48.91 49.14 11087402.0 5.426683e+08 5.348193e+10 9.424754e+10
2022-06-10 sh600009 上海机场 48.35 48.70 47.53 48.20 48.91 19143510.0 9.161226e+08 5.270556e+10 9.287940e+10
2022-06-13 sh600009 上海机场 47.70 47.77 47.00 47.30 48.20 14697344.0 6.943626e+08 5.172143e+10 9.114513e+10
2022-06-14 sh600009 上海机场 46.91 47.70 46.80 47.66 47.30 9660702.0 4.561801e+08 5.211509e+10 9.183884e+10
2022-06-15 sh600009 上海机场 47.60 48.50 47.33 47.60 47.66 17573504.0 8.417553e+08 5.204948e+10 9.172322e+10
[5843 rows x 11 columns]
'''
查看和选取数据常用函数
1.print(df.shape) # 查询数据有多少列和行,可以使用shape[0]来获取有多少行
print(df.shape)
print(df.shape)[0]
''' 输出结果: (5843, 11)
输出结果: 5843 '''
2. print(df.columns) # 顺序输出每一列的名字,可以用for循环直接获取每一项的名字
print(df.columns) '''输入结果: Index(['股票代码', '股票名称', '开盘价', '最高价', '最低价', '收盘价', '前收盘价', '成交量', '成交额','流通市值', '总市值'],dtype='object')'''
3.print(df.index) # 顺序输出每一行的名字,索引值
print(df.index)
''' 输出结果: Index(['1998-02-18', '1998-02-19', '1998-02-20', '1998-02-23', '1998-02-24',
'1998-02-25', '1998-02-26', '1998-02-27', '1998-03-02', '1998-03-03',
...
'2022-06-01', '2022-06-02', '2022-06-06', '2022-06-07', '2022-06-08',
'2022-06-09', '2022-06-10', '2022-06-13', '2022-06-14', '2022-06-15'],
dtype='object', name='交易日期', length=5843) '''
4.print(df.dtypes) # 可以查询每一列数据是由什么数据类型组成
print(df.dtypes) '''输出结果: 股票代码 object 股票名称 object 开盘价 float64 最高价 float64 最低价 float64 收盘价 float64 '''
5.print(df.head(3)) # 查看前三行数据,如果不指定参数会默认返回前五行
print(df.tail(3)) # 查看后三行的数据,如果不指定会默认返回后五行
print(df.sample(3)) # 随机抽取三行数据,如果想随机抽取40%的数据可以设置参数为 sample(frac = 0.4)
print(df.head(3))
'''输出结果:
股票代码 股票名称 开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
交易日期
1998-02-18 sh600009 上海机场 10.00 10.28 8.90 9.05 6.41 133356100.0 1.267013e+09 2.443500e+09 8.145000e+09
1998-02-19 sh600009 虹桥机场 8.99 9.00 8.54 8.80 9.05 31182200.0 2.721070e+08 2.376000e+09 7.920000e+09
1998-02-20 sh600009 虹桥机场 8.80 9.08 8.66 8.88 8.80 15578600.0 1.380111e+08 2.397600e+09 7.992000e+09
'''
6.print(df.describe()) # 对数字列进行统计,包括取平均数标准差等等 describe(include='all') 该参数表示所有列均统计,不能统计的用空值表示
print(df.describe())
'''输出结果:
开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
count 5843.000000 5843.000000 5843.000000 5843.000000 5843.000000 5.843000e+03 5.843000e+03 5.843000e+03 5.843000e+03
mean 24.687571 25.097359 24.321066 24.722382 24.713811 9.879714e+06 2.755574e+08 2.477708e+10 4.610769e+10
std 19.342141 19.658878 19.056589 19.372476 19.371255 1.004100e+07 3.957244e+08 2.268694e+10 3.854776e+10
min 7.780000 7.960000 7.700000 7.770000 6.410000 1.683150e+05 1.365437e+06 2.373300e+09 7.911000e+09
25% 11.800000 11.960000 11.700000 11.825000 11.820000 3.467490e+06 4.786714e+07 8.153606e+09 2.061846e+10
50% 14.500000 14.770000 14.300000 14.510000 14.510000 6.779675e+06 1.351150e+08 1.470975e+10 2.790236e+10
75% 32.005000 32.885000 31.165000 32.020000 31.990000 1.317735e+07 3.584077e+08 3.337785e+10 6.170121e+10
max 87.680000 88.900000 87.500000 87.500000 87.500000 1.942574e+08 1.130779e+10 9.567918e+10 1.686089e+11
'''
7.print(df['开盘价']) print(df[['开盘价', '收盘价']]) # 根据列的名字显示某列数据,显示多列数据用两个中括号
print(df['开盘价'])
'''输出结果:
交易日期
1998-02-18 10.00
1998-02-19 8.99
1998-02-20 8.80
1998-02-23 8.84
1998-02-24 9.17
...
2022-06-09 48.91
2022-06-10 48.35
2022-06-13 47.70
2022-06-14 46.91
2022-06-15 47.60
Name: 开盘价, Length: 5843, dtype: float64
'''
loc和iloc函数的使用
1.print(df.loc['1998-02-18']) # 根据行的名字显示某行
print(df.loc['1998-02-18']) '''输出结果: 股票代码 sh600009 股票名称 上海机场 开盘价 10.0 最高价 10.28 最低价 8.9 收盘价 9.05 前收盘价 6.41 成交量 133356100.0 成交额 1267012922.0 流通市值 2443500000.0 总市值 8145000000.0 Name: 1998-02-18, dtype: object '''
2.print(df.loc[['1998-02-18', '1999-11-11']]) # 显示多行的数据,需要两个中括号放进去查看的index
print(df.loc[['1998-02-18', '1999-11-11']])
'''输出结果:
股票代码 股票名称 开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
交易日期
1998-02-18 sh600009 上海机场 10.00 10.28 8.90 9.05 6.41 133356100.0 1.267013e+09 2.443500e+09 8.145000e+09
1999-11-11 sh600009 虹桥机场 11.19 11.24 11.02 11.16 11.17 1729900.0 1.920385e+07 5.022000e+09 1.506600e+10
'''
3.print(df.loc['1998-02-18': '1998-02-25']) # 根据行的名字选取一段行数据,无需两个中括号用冒号连接
print(df.loc['1998-02-18': '1998-02-25'])
'''输出结果:
股票代码 股票名称 开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
交易日期
1998-02-18 sh600009 上海机场 10.00 10.28 8.90 9.05 6.41 133356100.0 1.267013e+09 2.443500e+09 8.145000e+09
1998-02-19 sh600009 虹桥机场 8.99 9.00 8.54 8.80 9.05 31182200.0 2.721070e+08 2.376000e+09 7.920000e+09
1998-02-20 sh600009 虹桥机场 8.80 9.08 8.66 8.88 8.80 15578600.0 1.380111e+08 2.397600e+09 7.992000e+09
1998-02-23 sh600009 虹桥机场 8.84 9.25 8.80 9.13 8.88 17831000.0 1.616534e+08 2.465100e+09 8.217000e+09
1998-02-24 sh600009 虹桥机场 9.17 9.18 8.82 8.89 9.13 11437700.0 1.029877e+08 2.400300e+09 8.001000e+09
1998-02-25 sh600009 虹桥机场 8.88 9.00 8.75 8.95 8.89 7138000.0 6.325902e+07 2.416500e+09 8.055000e+09
'''
4.print(df.loc[:, '开盘价':'收盘价']) # loc函数可以设置两个参数,第一个参数是选取哪个或者哪些行的数据,第二个参数可以选取哪个或哪些列,此时代表选取所有的行开盘价到收盘价的数据
print(df.loc[:, '开盘价':'收盘价'])
'''
输出结果:
开盘价 最高价 最低价 收盘价
交易日期
1998-02-18 10.00 10.28 8.90 9.05
1998-02-19 8.99 9.00 8.54 8.80
1998-02-20 8.80 9.08 8.66 8.88
1998-02-23 8.84 9.25 8.80 9.13
1998-02-24 9.17 9.18 8.82 8.89
... ... ... ... ...
2022-06-09 48.91 49.33 48.60 48.91
2022-06-10 48.35 48.70 47.53 48.20
2022-06-13 47.70 47.77 47.00 47.30
2022-06-14 46.91 47.70 46.80 47.66
2022-06-15 47.60 48.50 47.33 47.60
'''
5.print(df.loc['1998-02-18': '1998-02-25', '开盘价':'收盘价']) # 选取数据表中某一块的数据
print(df.loc['1998-02-18': '1998-02-25', '开盘价':'收盘价'])
'''
输出结果:
开盘价 最高价 最低价 收盘价
交易日期
1998-02-18 10.00 10.28 8.90 9.05
1998-02-19 8.99 9.00 8.54 8.80
1998-02-20 8.80 9.08 8.66 8.88
1998-02-23 8.84 9.25 8.80 9.13
1998-02-24 9.17 9.18 8.82 8.89
1998-02-25 8.88 9.00 8.75 8.95
进程已结束,退出代码0
'''
6.print(df.loc['1998-02-18', '开盘价']) # 利用loc函数同时传参行和列选取到的是某天收盘价
print(df.loc['1998-02-18', '开盘价']) # 输出结果: 10.0
7.print(df.iloc[1:6]) # iloc函数是可以用数字索引来选取某些数据,两个参数包左不包右
print(df.iloc[1:6, 1:6]) # 表示选择1-5行的1-5列的数据
print(df.iloc[1:6][['开盘价', '收盘价']]) # 表示选择1-5行的收盘价和开盘价数据
print(df.iloc[1:6])
print(df.iloc[1:6, 1:6])
print(df.iloc[1:6][['开盘价', '收盘价']])
'''
输出结果:
股票代码 股票名称 开盘价 最高价 最低价 收盘价 前收盘价 成交量 成交额 流通市值 总市值
交易日期
1998-02-19 sh600009 虹桥机场 8.99 9.00 8.54 8.80 9.05 31182200.0 272106986.0 2.376000e+09 7.920000e+09
1998-02-20 sh600009 虹桥机场 8.80 9.08 8.66 8.88 8.80 15578600.0 138011062.0 2.397600e+09 7.992000e+09
1998-02-23 sh600009 虹桥机场 8.84 9.25 8.80 9.13 8.88 17831000.0 161653355.0 2.465100e+09 8.217000e+09
1998-02-24 sh600009 虹桥机场 9.17 9.18 8.82 8.89 9.13 11437700.0 102987719.0 2.400300e+09 8.001000e+09
1998-02-25 sh600009 虹桥机场 8.88 9.00 8.75 8.95 8.89 7138000.0 63259019.0 2.416500e+09 8.055000e+09
股票名称 开盘价 最高价 最低价 收盘价
交易日期
1998-02-19 虹桥机场 8.99 9.00 8.54 8.80
1998-02-20 虹桥机场 8.80 9.08 8.66 8.88
1998-02-23 虹桥机场 8.84 9.25 8.80 9.13
1998-02-24 虹桥机场 9.17 9.18 8.82 8.89
1998-02-25 虹桥机场 8.88 9.00 8.75 8.95
开盘价 收盘价
交易日期
1998-02-19 8.99 8.80
1998-02-20 8.80 8.88
1998-02-23 8.84 9.13
1998-02-24 9.17 8.89
1998-02-25 8.88 8.95
'''
at和iat函数的使用
1.print(df.at['1998-02-18', '开盘价']) # at函数专用作需选取某个数据,效率比loc快
2.print(df.iat[1, 3]) # iat用数字索引来选取某个数据
print(df.at['1998-02-18', '开盘价']) print(df.iat[1, 3]) # 输出结果: 10 # 输出结果: 9.0