pandas操作,按序号取列,按条件筛选,df格式转换等

这几天遇到比较多的dataframe操作,频繁使用,在此整理记录下,方便查找.

1.num为列的数字序号,name=df.columns[num],返回的是column的字符串名字,df[name]=df[df.columns[num]]=df['xxx']

2.关于panda中dataframe的与&运算,详情见我的博客,链接:https://www.cnblogs.com/Rvin/p/9504341.html
  df_am = df[ np.array(df['MDTime']>=93000000) & np.array(df['MDTime']<113000000) ]
 
3.to_numeric适用于series,对字符串进行数字格式化, errors='coerce',忽略不能转化的格式,例如
  格式化之前为S[2]='123',格式化结果为S[2]=123
  for i in range(df.shape[1]):
      df[df.columns[i]] = pd.to_numeric(df[df.columns[i]], errors='coerce')

4.drop方法及dropna方法
  df.drop([0], inplace=True)  # 删除列
  df.drop(df.columns[0], axis=1, inplace=True) # 删除列
  df.dropna(how='all',inplace=True, thresh=None)    # 这个是dropna的用法,how可选
      any-有一个na就符合条件,
      all--全部为na才符合条件,
      thresh参数(和how同级),thresh=5,大于5个符合条件
      inplace=True,替换原来的,不需要返回值了  

5.isin方法
  df[~df.isin([np.nan, np.inf, -np.inf]).any(1)]
  isin([np.nan, np.inf, -np.inf])返回整个df的每个元素(元素是np.nan, np.inf, -np.inf,则返回True)True or False
  ~取反,因为我需要的是留住那些不是np.nan, np.inf, -np.inf的值,df[True]的元素还是返回原来的值,False的返回为nan,然后用fillna填充即可
 
6.json,想要json.loads,字符串的必须是"双引号,单引号无法加载
  str=re.sub('\'', '\"', str)

7.df的列改名,这样可以改对应的多个,index相同
  df.rename(columns={'时间':'MDTime','成交量':'PreVolume'})
  这样是从第一列重新命名,index相同
  df.columns = [list('abcd')]
 
8.转化df格式的问题
  我的stackoverflow的问题:https://stackoverflow.com/questions/52033359/transform-a-large-dataframe-takes-too-long/52033393?noredirect=1#comment91017865_52033393
  df = pd.pivot(df.index, df['stock_code'], df['price'])
  pivot,第一个参数为新df的index,第二个为新的columns,第三个为values
 

转载于:https://www.cnblogs.com/Rvin/p/9605389.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值