博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DataFrame的构建及一些操作
阅读量:6593 次
发布时间:2019-06-24

本文共 2709 字,大约阅读时间需要 9 分钟。

一、DataFrame构建

1.用多个列表构建

#构建DataFrame

#self._stkpool_uni、codes、end_date(这些list用append填充值,保证各个list中元素个数一致)

        dfData = {"STK_UNI_CODE":self._stkpool_uni, "STK_CODE":codes, "END_DATE":end_date,
                  "SCORE_FAC":score, "DIS_FAC":descri, "RAT_FAC":star, "MAC_FAC":mac}
        df = pd.DataFrame(data=dfData)

 

2.用一个列表构建(其中列表元素为dict,dict的值来自tuple)

  findata_list = []              #定义一个空list

   for res in query_Object:          #res是元组
            dict_fin = {}             #定义一个空dict
            for arr in range(0,len(res)):       #for循环元组
                dict_fin[columns[arr]] = res[arr]   #给dict填值
            findata_list.append(dict_fin)      #给list填值
       dfQuery = pd.DataFrame(findata_list)   #通过list构建DataFrame

 

3.指定列的顺序  

  df_data = {"公式代码":gsCode, "股票市场":gpMarket, "股票代码":gpCode, "日期":signalDate, "新接口":mField, "老接口":mFieldOnline}

  col = ['公式代码','股票市场','股票代码','日期','新接口','老接口']
  df = pd.DataFrame(data=df_data,columns=col)

 

二、DataFrame一系列小操作总结

1.DataFrame排序

  ①.根据列值排序(sort_values)

    df_return = df_return.sort_values(['date', 'gpcode'], ascending=[0,1])  # 排序,0倒序,1正序

  ②.根据索引值排序(sort_index)

    dfSort = dfSort.sort_index(ascending=False)

 

2.DataFrame query

  strsql = "index <= '{0}'".format(date)

      df_entrydate = dfSort.query(strsql)

 

3.DataFrame groupby、pandas.core.groupby.GroupBy.nth

  strsql = "index <= '{0}'".format(date)

      df_entrydate = dfSort.query(strsql)

  gb = df_entrydate.groupby('gpcode')  #按gpcode分组

  ret = gb.nth(0)  #取groupby之后的第1组数据

 

4.DataFrame取值

  ①根据已知索引取值(ix)

    res= dfQuery.ix[index]

  ②取一段数据块(iloc, loc)

    1.ret = copy.copy(df_entrydate.iloc[:1])   #取dataframe第一行数据

     

    2.

    

 

5.DataFrame修改值

  ①更改某列的某一个值(loc[索引值,列名])

    df_stopdate.loc[df_stopdate.index, "date"] = dict_stopdate[key]

  ②df_stopdate['date'][1]= '2016-01-01'

   df_stopdate['date'] = '2016-01-01'

 

6.DataFrame设置索引(set_index)

  ①重置索引(reset_index)

    df_return = df_return.reset_index()

  ②设置索引(set_index)

    df_return = df_return.set_index('a', 'b')

  ③

  import copy

  ret = copy.copy(df_entrydate.iloc[:1])   #取dataframe第一行数据
      ret.index=[[gpcode],[date]]
      ret.index.names=["gpcode","date"]
      df_return = df_return.append(ret)

 

7.DataFrame取一列索引的值

  ①一重索引取值

    df.index.tolist()

  ②多重索引取值(df.index.get_level_values('列名'))

    dfQuery.index.get_level_values('gpcode')

 

8.DataFrame删除

  ① 某一列(del)

  del(df_entrydate["gpcode"])

  ② 某一列(drop、axis=1

  df = df.drop(['col1','col2'],axis=1)

  ③ 某一行(drop、axis=0

  df = df.drop([0],axis=0) #删除第一行

 

9.DataFrame的某一列转换类型

  prit dfQuery.dtypes

  

  pandas中没有"string",string类型的被存为object。

  将date列转换成datetime64类型

  import numpy as np

  dfQuery['date'] = dfQuery['date'].astype(np.dtype("datetime64"))

  print dfQuery.dtypes

  

 

未完待续。。。

 其他操作参见:http://www.cnblogs.com/chaosimple/p/4153083.html

转载于:https://www.cnblogs.com/SZxiaochun/p/6290514.html

你可能感兴趣的文章
js中的面向对象
查看>>
050:navie时间和aware时间详解
查看>>
如何正确地在Spring Data JPA和Jackson中用上Java 8的时间相关API(即JSR 310也即java.time包下的众神器)...
查看>>
【python】-- 函数、无参/有参参数、全局变量/局部变量
查看>>
KMP算法(AC自动机前奏)(转)
查看>>
基于WinSvr2016(TP)构建的“超融合技术架构”进阶篇
查看>>
2013喜获MVP殊荣,这个国庆不一样
查看>>
CocoStudio 1.4.0.1数据编辑器使用
查看>>
关于使用Android NDK编译ffmpeg
查看>>
跟我一起考PMP--项目人力资源管理
查看>>
【虚拟化实战】存储设计之七Block Size
查看>>
烂泥:记一次诡异的网络中断
查看>>
在 SELECT 查询中使用集运算符
查看>>
UITableView 延迟加载图片的例子
查看>>
控制IMG图片的大小缩放
查看>>
Visual C++ 时尚编程百例006(快捷键)
查看>>
ASP.NET MVC3 系列教程 - 如何使项目Debug进MVC3源代码
查看>>
操作步骤:用ildasm/ilasm修改IL代码
查看>>
HTTP POST GET 本质区别详解
查看>>
【java】构建工具,maven,ant,gradlew
查看>>