栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

[python]pandas查看和选取数据

Python 更新时间:发布时间: 百科书网 趣学号
首先  导入数据: 

查看所有数据 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
 
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/987060.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号