包含pandasjson的词条

本篇文章给大家谈谈pandasjson,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

pandas常用函数汇总

pandas官方文档:

对常用函数做了汇总,每个函数的参数可能不是全的,但是常用的,不常用的没总结,如有问题,请不吝赐教,谢谢!

1、创建Series

      通用函数:pd.Series(values,index)

     1)pd.Series([1,2,3],index=[‘a’,‘b’,‘c‘])

     2)pd.Series(np.array([1,2,3]),index=[‘a’,‘b’,‘c‘])

     3)pd.Series({ 'a':1,  'b':2,  'c':3})

        Series转字典:Series.to_dict()

     说明:Series的values参数是python中常见的一维数据类型。

2、属性李此拦

     1)Series.values ---array([1,2,3])

           Series的values是array类型

     2)Series.index---index([‘a’,‘b’,‘c‘])

           未指定index时,自动生成 0-(N-1)的整数索引,

           指定 index时,使用指定索引。

 3、Series的索引与切片

       Series[0] / Series['a']  : Sereis可以位置索引或标签索引,也可以进行切片操作

1、创建DataFrame

    1) 创建DataFrame的通用函数:

     df = pd.DataFrame(values,index,columns)

     pd.dataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])

     pd.dataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])

     pd.dataFrame('bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9],index=['a','b','c'])

说明:创建方法与Sries类似,Series的values参数是python中常见的一维数据类型,DataFrame的values参数是python中常见的二维数据类型。

    2) 通过网页中复制数据快捷创建

        import webbrowser

        link = ''

        webbrowser.open(link)

        打开界面进行复扒做制,将数据复制到粘贴板中

        df = pd.read_clipboard()   #从粘贴板中读取数据

    3)通过Series创建DataFrame

        df = pd.DataFrame([s1,s2,s3],columns=['bj','sh','sz'])

        注意:单独的s1,s2,s3是纵向排列的的Series,但是在DataFrame中是横向排列的。

        自己总结:Series除了打印出来是Series格式外,其他时候可以直接当作list来操作。

2、属性

     1)df.columns

        通过columns生成新的DataFrame

        df_new = pd.DataFrame(df,columns=['x1','x2'])

       哪胡 或者df_new = df[['x1','x2']]

    2)df.shape  显示行列数

    3)df.head()   默认显示前5行

    4)df.tail()     默认显示后5行

3、获取DataFrame的列

     1)获取DataFrame某一列

          df.x1或df['x1']:返回值是Series,可以理解为一个DataFrame是由多个Series组成的。

      2) 获取DataFrame某几列

          df_new = df[['x1','x2','x3']]

4、为某列赋值

      1) df['x1'] = range(10)

      2) df['x1'] = numpy.arange(10)

      3) df['x1'] = pd.Series(np.arange(10))

      说明:类似于创建Series

 5、为某列对应的特定行重新赋值

        df['x1'] = pd.Series([2,3],index=[0,1])

        将列为x1,行索引为0和1的值改为2,3

 6、获取DadaFrame的行

      for row in DataFrame.iterrows():

              print(row[0],row[1])

      #每个row是一个元祖,包含2个元素,row[0]是整型索引,row[1]是Series,所以从行的角度也可以看出,一个DataFrame是由多个Series组成的。

 7、DataFrame的转置

      df_new = df.T

1、粘贴板的io

      df = pd.read_clipboard()

      df.to_clipboard()

 2、csv的io

       df.to_csv('xxx.csv')

       df = pd.read_csv('xxx.csv')

  3、json的io

       df.to_json()

       pd.read_json(df.to_json())

   4、excel的io

        df.to_excel('xx.xlsx')

        df = pd.read_excel('xx.xlsx')

   5、df = pd.read_sql('')

        df.to_sql('')

 1、iloc

      sub_df = df.iloc[10:20,:]  选取DataFrame的10-20行,所有列数据

      sub_df = df.iloc[10:20,0:2]

      说明:iloc函数是位置索引,与索引的名字无关。

   2、loc

      sub_df = df.loc[10:20,:'movie_name']

      说明:loc是标签索引,10,20,'movie_name'  都是索引名字,与位置无关。

1、Series.reindex(index=['x1','x2','x3'],fill_value=10)

      将df重新索引,并且将NaN空值用10进行填充

2、Series.reindex(index=range(15),method='ffill')

     前项填充,后面的值用前面的值进行填充

     通过reindex想到,如果想新增一个空列或者空行,可以用reindex方法,同样地,想减少某些行或者某些列,也可以用reindex方法。

      继reindex之后删除行列的函数操作

      Series.drop('A')   #删除'A'所对应的值

      DataFrame.drop(label,axis) 

      label可以是行名也可以是列名,label是行的话axis是0,label是列的话axis是1。

     ** 删除行还可以用 del df['A']

nan是numpy的一种数据类型,np.nan,float类型

任何数据与nan的运算结果都是nan

1、nan in Series

      Series.isnull()  --返回value为True或者False的Series

      Series.notnull()  --返回value为True或者False的Series

      Series.dropna()  --返回删除nan值后的Series

      Series.fillna(method='ffill')  --前项插值,按照前面的值填充后面的空值

2、nan in DataFrame

      df.isnull()  --返回value为True或者False的DataFrame

      df.notnull()  --返回value为True或者False的DataFrame

      df.dropna(axis=0/1,how='any/all',thresh=None)

      说明:axis表示删除行为nan或者列为nan;

                any表示只要有一个为空,all表示行中的每个元素或者列中的每个元素为空;

                thresh是阈值的意思,表示某行或者某列nan的个数达到阈值的个数时才删除该行或该列。

      df.fillna(value=1)  ---所有的空值都填充为1

      df.fillna(value={0:0,1:1,2:2}) ---将0列的空值填为0,1列的空值填为1,2列的空值填为2,默认为填充列

      注意:fillna和dropna的特点,生成新的DataFrame,原来的DataFrame不变。

1、多重索引介绍

     Series = pd.Series(np.random.randn(6),index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])

    '1','2'为一级索引,'a','b','c'为二级索引

    df 可以看做是索引的'1','2'的Series

    Series['1']  --Series

    Series['1']['a']  --value

    Series[:,'a'] --选择'1'和'2'中的'a'对应的值

2、多重索引格式转为二维DataFrame

    df = Series.unstack() --转为二维DataFrame

3、多重索引在DataFrame中的操作

1、 map函数与apply函数、applymap函数的区别:

      1)map函数对Series中的每个元素作用;

      2)applymap函数对DataFrame中的每个元素作用;

      3)apply函数对对DataFrame和Series的一列做整体运算。

2、Series.replace(to_replace=[2,3,4],values=[20,30,40])  替换Series中多个值

    Series.replace({1:10,2:20})  将索引为1的值替换为10,将索引为2的值替换为20

    df.sum()  --默认按照列进行求和,nan的值被忽略

    df.min()  --默认按照列求最小值

    df.max()  --默认按照列求最大值

    df.mean()  --默认按照列求平均值

    df.describe()  --默认按照列进行描述

    df.sum(axis=1)  --按行求和,nan的值被忽略

    #axis=0表示对横轴进行操作,但是运算中表现为纵轴操作

    #axis=1表示对纵轴进行操作,但是运算中表现为横轴操作

 bins = [0,59,70,80,100],bins是分割范围

 score_cat = pd.cut(Series,bins)  ---得到catgory类型的数据

 DataFrame的分箱技术很棒啊!

 pd['catgory'] = pd.cut(df['a'],bins=[0,59,70,80,100],labels=['low','ok','good','great'])

 --新增一列,将a列的值按照labels进行分类标记,good!!!

 #生成长度为3的随机字符串  pd.util.testing.rands(3)

1、按照一列分组

      g = df.groupby('city')

      g是分组类型数据,打印不出来,所以看不到,但是有属性和方法可以间接的了解

     1) g.groups  --得到分的几个组,和每个组包含的索引

     2)g.get_group('BJ')  --得到'BJ'所对应的组

     3)groupby = split +apply +combine

           g.mean()  --求每组的平均值

           g.max()   --求每组的最大值

           g.min()   --求每组的最小值

           g.count()

           g.describe()

      4)g是一个可迭代对象,可以用list函数将其转化为list

          list(g) -- [('组名1',DataFrame1),('组名2',DataFrame2),(),()]

          dict(list(g))  --将其转化为字典

      同时可以通过for循环进行遍历操作:for item,desc in g:print(item,desc)

      #怪不得分组后不是DataFrame,因为元组的第一个元素是'分组名'。

2、按照多列分组

      g_new = df.groupby(['city','wind'])

      得到生成器((('分组1','分组2'),DataFrame),(),()...)

      g_new.get_group(('分组1','分组2'))

      for (name_1,name_2),group in g_new:

              print((name_1,name_2),group)

 g.mean()  --求每组的平均值

 与g.agg('mean')方法一样

pd.pivot_table(df,index=['',''],aggfuc='sum',values=['',''])

index是分组的组名,values是透视表呈现结果的列,columns是values下的分解

#感觉透视表呈现的结果就是groupby+agg后的结果

#分析者需要对数据结构有一定的了解

df.sort_values(by='',ascending=True/False)[:10]  df可以索引

df.value_counts()  --按值计数

df.['a'] = df['b'].apply(lambda x:x0)  --DataFrame中的True/False

通过g.size()可以看到被groupby之后的数据,得到的是一个Series

1、Series的排序:

    1)对值进行排序

    Series.sort_values()  ---直接对Series的值进行排序

    2)通过索引进行排序

    Series.sort_index() 

    #默认都是升序排列

2、DataFrame的排序

     df.sort_values(by='')  --按照某列的顺序进行排序

    df['a'].sort_values()  --返回对a列数据的排序结果,只返回a列

1、df.index = Series(['a','b','c'])  直接对index赋予新值

2、df.index = df.index.map(str.upper)

     map函数中只传入新的函数名即可

3、df.rename(index=str.upper,columns=str.lower)

      或者传递字典,进行一一转换

    pd.merge(df1,df2,on=None,how='left/right/inner/outer')

    pd.merge(df1,df2)  --没有on参数默认先找相同的columns,然后在columns下找相同的values

    pd.merge(df1,df2,on='columns')  --on参数是指按照指定列进行merge

    left:表示以左边的数据表为基准,进行填充右面的数据

    right:表示以右边的数据表为基准,填充左边的数据

    outer:以on的指定列的所有值为基准,填充两边的数据

    inner:默认inner,相同on指定的columns下的相同values对应的左右两边的数据

1、concat拼接

    pd.concat([Series1,Series2])

    pd.concat([df1,df2])  -- 上下叠加,将没有的列进行填充

2、combine组合

    Series1.combine_first(Series2)  --用Series2的值去填充Series1中为空的值

    df1.combine_first(df2)  ---用df2将df1中的空值填充

    df['A'] = df['A'].apply(str.upper)  ---apply函数中也只输入函数名

    len(df)  --求df的长度

    len(df['a'].unique())  --查看a列中不重复数据的多少

    Series.duplicated()  --返回一列True/False的Series

    Series.drop_duplicates()  --删除重复值

    df.drop_duplicates('a',keep='first/last')

    df.drop_duplicates()  --删除完全重复的行

    参数:'a'表示以a列为基准,删除重复值

              first表示保留第一个,last表示保留最后一个

    data_list = pd.date_range(start,end,period='D',freq)

    period='D',以天为单位

    freq = 'W' 以周为单位

    freq = 'W-Mon'以每周一位单位

    freq = '5H'  以5h为单位

    以data_range作为索引提取数据比较简单

    df[datetime(2017,9,1)]

    df['2017-09-01']

    df['20170901']

    df['201709']

    对时间序列数据进行分组聚合操作:

    s1.resample('M').mean()  --以月为单位进行采样,然后求每组的平均值

    s1.resample('H').ffill()  --前项填充

    s1.resample('H').bfill()  --后项填充

补充:1)jupyter中可以执行linux命令,太棒了!

                !ls

                !more xxx.csv

                !pwd  等等

           2)jupyter 查看函数帮助的快捷键:摁住shift + tab  棒!!!

[img]

Pandas只提供了读取什么文件的函数?

Pandas 提供了一系列函数,用于读取不同类型的文件。下搏枯面列出了 Pandas 中常用的读取文件的函数:

read_csv():读取 CSV 格式的文件。

read_excel():读取 Excel 格式的文件。

read_hdf():读取 HDF5 格式的文件。

read_json():读取 JSON 格式的文件。

read_pickle():读取 Python 序迅凯列化格式的文件(即 pickle 文件)。

read_sql():从数据库中读取数据。

这些函数都可以在 Pandas 的文档中找到详细的使用方法:

此外,Pandas 还支持使用 Python 内置的 open() 函数读取文本文件,使用 pd.read_table() 函数读取表格式的文件,使用 pd.read_clipboard() 函数读取剪贴板中的数据等亩银唤。

希望这些信息能帮助你。如果你有其他问题,请随时追问。

Pandas读取json/csv提示ValueError: Expected object or value

问题产生的原因: pandas不支持utf-8 with BOM的文件, 支持的是UTF-8 不薯山带BOM文睁镇件

解决方法: 以Notepad++为例

深入研究下 utf-8 with BOM文件和UTF-8 不带BOM文件的区别:

2.总结来说: 微软在自己家的windows系统用记事本建utf-8文件, 喜欢加个"U+FEFF"标记, 来标示该文件是UTF-8文件, 然而其他公司都不认同, 大家认同的是纯粹的utf-8文件, 所以在对文件的二数早中进制流进行解析时, 如果带了BOM标记就解析不出来了

Pandas基础

Pandas 是 Python 语言的一个扩展程序库,用于数据分析。

Pandas 是一个开放源码、BSD 许可的库,提供高性能、易于使用的数据结构和数据分析工具。掘碧

Pandas 名字衍生自术语 "panel data"(面板数据)和 "Python data analysis"(Python 数据分析)。

Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。

Pandas 可以从各种文件格式比如 CSV、JSON、SQL、Microsoft Excel 导入数据。

Pandas 可以对各种数据进行运算操作,比如归并、再成形、激雹选择,还有数据清洗和数据加工特征。

Pandas 广泛应用在学术、金明散帆融、统计学等各个数据分析领域。

pandas数据分析-常用命令

order = ['id','msg','reason']

df = df[order]

常用:

df.rename(columns={'A':'a','B':'b'},inplace=True)(inplace说明修改原数据)

高级用法示例:大型态写转成小写,去除头尾空格(strip)用 替换空格

df.rename(columns=lambda x:x.strip().lower().replace(' '," "),inplace=True)

检查冗余值 df.duplicated()

删除冗余值 df.drop_duplicates(inplace=True)

df.reset_index()

test=pd.DataFrame(msg)

lambda x: 1 if x0 else 0

df = pd.concat([df,msg],axis=0,ignore_index=True)

pd.merge(df1,df2) 相当于sql, join的左连接

str[0:4] #截取第一位和第四位的字符

str[:-1] #截取从开头到倒数第一唯凯位的字符

for i,val in range(len(temp)):

for i,val in enumerate(temp):

df[df.isnull().values==True].drop_duplicates()

append()向列表尾部追加一个元素,只占一个索引位

extend()像列表尾部追加一个李彪,将列指租唤表2中 的每个元素都追加进列表1 .

str=','.join(str(i)for i in list)

eval(str)

df1 = df2.groupby(['ip']).aggregate(lambda x:set(x))

for i in data:

def timeStamp(timeNum):

timeStamp = float(timeNum/1000)

timeArray = time.localtime(timeStamp)

otherStyleTime = time.strftime("%Y.%m.%d", timeArray)

return otherStyleTime

df= df.astype('str')

import json

with open('psth','r') as load_f:

load_dict = json.load(load_f)

ioc_list=[]

for k,v in load_dict.items():

关于pandasjson和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

相关阅读

  • 数据sql(查询前10条数据sql)

    数据sql(查询前10条数据sql)

    标题:深入了解数据SQL技术简介:数据SQL技术在IT领域中起着重要作用,能够对数据进行管理、查询和分析。本文将详细介绍数据SQL技术的定义、特点以及应用领域。一、什么是数据SQL技术数据SQL技术是一种用于管理关系数据库中数据的标准化语言...

    2024.04.14 03:22:12作者:intanet.cnTags:数据sql
  • sql创建数据库(mysql创建数据库)

    sql创建数据库(mysql创建数据库)

    简介:在IT技术中,SQL(Structured Query Language)是一种用于管理关系数据库的标准语言。创建数据库是数据库管理的基础操作之一,通过SQL语句可以方便地创建数据库,并定义其中的数据表和数据结构。一、创建数据库首先,...

    2024.04.14 02:55:09作者:intanet.cnTags:sql创建数据库
  • 包含mysqldateformat的词条

    包含mysqldateformat的词条

    文章标题:MySQL日期格式简介:MySQL是一种广泛使用的关系型数据库管理系统,日期格式在数据库中也是非常重要的。在MySQL中,日期格式有许多种不同的方式来表示和存储日期数据。本文将介绍MySQL中日期格式的相关知识。一级标题:日期格式...

    2024.04.14 01:44:11作者:intanet.cnTags:mysqldateformat
  • sql注入联合查询语句(oracle联合查询注入)

    sql注入联合查询语句(oracle联合查询注入)

    简介:SQL注入是一种常见的网络安全攻击方式,攻击者利用恶意SQL语句篡改数据库查询,甚至控制数据库服务器。其中,注入联合查询是一种常见的SQL注入攻击方式,攻击者通过联合查询语句向数据库中插入额外的查询语句,以获取额外的敏感信息或实现恶意...

    2024.04.13 22:44:12作者:intanet.cnTags:sql注入联合查询语句
  • sql注入java(SQL注入原理)

    sql注入java(SQL注入原理)

    简介:SQL注入是一种常见的网络安全攻击技术,通过向应用程序中的输入字段注入恶意SQL代码来实现对数据库的非法访问。在Java开发中,防止SQL注入攻击至关重要。本文将介绍如何在Java中防止SQL注入攻击。一级标题:什么是SQL注入攻击?...

    2024.04.13 19:33:29作者:intanet.cnTags:sql注入java
  • redis最新版(redis最新版本下载及安装教程)

    redis最新版(redis最新版本下载及安装教程)

    简介:Redis是一个开源的内存数据库,它可以用作数据库、缓存和消息中间件。最新版本的Redis提供了更多的功能和性能优化,使其在大规模应用和高并发情景下表现更出色。本文将介绍Redis最新版的一些特点和改进。一、性能提升最新版的Redis...

    2024.04.13 19:11:10作者:intanet.cnTags:redis最新版
  • 数据仓库模型(数据仓库模型层次包括)

    数据仓库模型(数据仓库模型层次包括)

    数据仓库模型简介:数据仓库模型是指将不同数据源中的数据整合、清洗、存储在一个统一的数据仓库中,以便于企业进行数据分析和决策支持。数据仓库模型通过将原始的杂乱无章的数据转化为结构化、易于分析的数据来帮助企业更好地了解自身和市场情况,从而做出科...

    2024.04.13 06:22:17作者:intanet.cnTags:数据仓库模型
  • mysql导入sql命令(mysql命令导入sql文件命令)

    mysql导入sql命令(mysql命令导入sql文件命令)

    简介:在IT技术领域中,MySQL是一种常用的关系型数据库管理系统,它支持使用Structured Query Language(SQL)语句来操作数据库。在日常工作中,我们经常需要导入SQL命令来对数据库进行操作,本文将详细介绍如何在My...

    2024.04.13 05:22:12作者:intanet.cnTags:mysql导入sql命令