Pandas 1.2:Pandas基础数据操作

目录

1. 索引操作

2. 赋值操作

3. 排序 


测试数据:test.csv

 

读取文件并将第一列设为索引:

data = pd.read_csv("F:/test.csv", index_col='Unnamed: 0')

1. 索引操作

        1.1 直接使用行列索引(先列后行)

先行后列会报错:data['2022/3/17']['v_ma5'] 或 data[:1, :2]

 

        1.2 结合loc或者iloc使用索引

loc:只能指定行列索引的名字

指定 2022/3/16 到 2022/3/18 的列 ma5的内容:

dd = data.loc['2022/3/16':'2022/3/18', 'ma5']

iloc可以通过索引的下标去获取

 获取前3行、前5列的结果:

        1.3 使用ix组合索引

获取行第1行到第4行,['ma10', 'ma20', 'v_ma5] 这3列的结果:

PS:新版本汇总已经将ix去掉,推荐使用loc和iloc来获取的方式:

data.loc[data.index[0:4], ['ma10', 'ma20', 'v_ma5']]
data.iloc[0:4, data.columns.get_indexer(['ma10', 'ma20', 'v_ma5'])]

 

2. 赋值操作

对DataFrame当中的 ma10 列进行重新赋值为1

# 直接修改原来的值
data['ma10'] = 1
# 或者
data.ma10 = 1

3. 排序 

排序有两种形式,一种对于 索引 进行排序,一种对于 内容 进行排序 

        3.1 DataFrame排序

使用df.sort_values(by=, ascending=) 单个键或者多个键进行排序

参数注释:

  • by:指定排序参考的键
  • ascending:默认升序
  • ascending=False:降序
  • ascending=True:升序(默认)

示例:

# 按 ma10 正序
dd = data.sort_values(by="ma10")
dd = data.sort_values(by="ma10", ascending=True)
# 按 ma10 降序
dd = data.sort_values(by="ma10", ascending=False)

# 按多列排序
dd = data.sort_values(by=['ma5', 'ma10'])

使用df.sort_index给索引进行排序:

# 正序
dd = data.sort_index()
# 降序
dd = data.sort_index(ascending=False)

         3.2 Series排序

series只有一列,所以排序时不需要参数:

# 根据值 正序
dd = data['ma10'].sort_values()
dd = data['ma10'].sort_values(ascending=True)
# 降序
dd = data['ma10'].sort_values(ascending=False)

# 根据索引 正序
dd = data['ma10'].sort_index()
dd = data['ma10'].sort_index(ascending=True)
# 降序
dd = data['ma10'].sort_index(ascending=False)

总结:

  • 1.索引
    • 直接索引:先列后行,需要通过索引的字符串进行获取
    • loc:先行后列,需要通过索引的字符串进行获取
    • iloc:先行后列,通过下标进行索引
    • ix:先行后列,新版Pandas已移除,可以用上面两种方法混合进行索引
  • 2.赋值
    • data['aaa'] = '内容'
    • data.aaa = '内容'
  • 3.排序
    • dataframe
      • 对象.sort_values()
      • 对象.sort_index()
    • series
      • 对象.sort_values()
      • 对象.sort_index()

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值