精华内容
下载资源
问答
  • pandas.core.series.Series

    千次阅读 2020-10-12 10:00:02
    Pandas 会默然用0到n-1来作为series的index, 但也可以自己指定index( 可以把index理解为dict里面的key ) 1.1创造一个serise数据 import pandas as pd import numpy as np ​ s = pd.Series([9, 'zheng', 'beijing...

    1 Series

    线性的数据结构, series是一个一维数组

    Pandas 会默然用0到n-1来作为series的index, 但也可以自己指定index( 可以把index理解为dict里面的key )

    1.1创造一个serise数据

    import pandas as pd
    import numpy as np
    ​
    s = pd.Series([9, 'zheng', 'beijing', 128])
    ​
    print(s)
    • 打印

    打印
    
    0          9
    1      zheng
    2    beijing
    3        128
    dtype: object
    • 访问其中某个数据

    访问其中某个数据
    
    print(s[1:2])
    ​
    # 打印
    1    zheng
    dtype: object

    1.2 指定index

    import pandas as pd
    import numpy as np
    ​
    s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])
    ​
    print(s)
    • 打印

    打印
    
    1          9
    2      zheng
    3    beijing
    e        128
    f        usa
    g        990
    dtype: object
    • 根据索引找出值

    print(s['f'])    # usa

    1.3 用dictionary构造一个series

    import pandas as pd
    import numpy as np
    ​
    s = {"ton": 20, "mary": 18, "jack": 19, "car": None}
    ​
    sa = pd.Series(s, name="age")
    ​
    print(sa)
    • 打印

    car      NaN
    jack    19.0
    mary    18.0
    ton     20.0
    Name: age, dtype: float64
    • 检测类型

    print(type(sa))    # <class 'pandas.core.series.Series'>

    1.4 用numpy ndarray构造一个Series

    #生成一个随机数

    import pandas as pd
    import numpy as np
    ​
    num_abc = pd.Series(np.random.randn(5), index=list('abcde'))
    num = pd.Series(np.random.randn(5))
    ​
    print(num)
    print(num_abc)
    ​
    # 打印
    0   -0.102860
    1   -1.138242
    2    1.408063
    3   -0.893559
    4    1.378845
    dtype: float64
    a   -0.658398
    b    1.568236
    c    0.535451
    d    0.103117
    e   -1.556231
    dtype: float64

    1.5 选择数据

    import pandas as pd
    import numpy as np
    ​
    s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])
    ​
    print(s[1:3])  # 选择第1到3个, 包左不包右 zheng beijing
    print(s[[1,3]])  # 选择第1个和第3个, zheng 128
    print(s[:-1]) # 选择第1个到倒数第1个, 9 zheng beijing 128 usa

    1.6 操作数据

    import pandas as pd
    import numpy as np
    ​
    s = pd.Series([9, 'zheng', 'beijing', 128, 'usa', 990], index=[1,2,3,'e','f','g'])
    ​
    sum = s[1:3] + s[1:3]
    sum1 = s[1:4] + s[1:4]
    sum2 = s[1:3] + s[1:4]
    sum3 = s[:3] + s[1:]
    ​
    print(sum)
    print(sum1)
    print(sum2)
    print(sum3)

    #打印

    2        zhengzheng
    3    beijingbeijing
    dtype: object
    2        zhengzheng
    3    beijingbeijing
    e               256
    dtype: object
    2        zhengzheng
    3    beijingbeijing
    e               NaN
    dtype: object
    1               NaN
    2        zhengzheng
    3    beijingbeijing
    e               NaN
    f               NaN
    g               NaN
    dtype: object

    1.7 查找

    • 范围查找
      import pandas as pd
      import numpy as np
       
      s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
       
      sa = pd.Series(s, name="age")
       
      print(sa[sa>19])
      

    • 中位数
      import pandas as pd
      import numpy as np
       
      s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
       
      sa = pd.Series(s, name="age")
       
      print(sa.median())  # 20
      

       

    • 判断是否大于中位数
      import pandas as pd
      import numpy as np
       
      s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
       
      sa = pd.Series(s, name="age")
       
      print(sa>sa.median())
      

    • 1.9 满足条件的统一赋值

      import pandas as pd
      import numpy as np
       
      s = {"ton": 20, "mary": 18, "jack": 19, "jim": 22, "lj": 24, "car": None}
       
      sa = pd.Series(s, name="age")
       
      print(s) # 打印原字典
       
      print('---------------------')   # 分割线
       
      sa[sa>19] = 88 # 将所有大于19的同一改为88
       
      print(sa) # 打印更改之后的数据
       
      print('---------------------')   # 分割线
       
      print(sa / 2) # 将所有数据除以2
      

    展开全文
  • 我有一个带有数据的pandas.core.series.Series0 [00115840, 00110005, 001000033, 00116000...1 [00267285, 00263627, 00267010, 0026513...2 [00335595, 00350750]我想从系列中删除前导零.我试过了x.asty...

    我有一个带有数据的pandas.core.series.Series

    0 [00115840, 00110005, 001000033, 00116000...

    1 [00267285, 00263627, 00267010, 0026513...

    2 [00335595, 00350750]

    我想从系列中删除前导零.我试过了

    x.astype('int64')

    但得到了错误信息

    ValueError: setting an array element with a sequence.

    你能建议我在python 3.x中怎么做吗?

    解决方法:

    如果想要将字符串列表转换为整数列表,请使用list comprehension:

    s = pd.Series([[int(y) for y in x] for x in s], index=s.index)

    s = s.apply(lambda x: [int(y) for y in x])

    样品:

    a = [['00115840', '00110005', '001000033', '00116000'],

    ['00267285', '00263627', '00267010', '0026513'],

    ['00335595', '00350750']]

    s = pd.Series(a)

    print (s)

    0 [00115840, 00110005, 001000033, 00116000]

    1 [00267285, 00263627, 00267010, 0026513]

    2 [00335595, 00350750]

    dtype: object

    s = s.apply(lambda x: [int(y) for y in x])

    print (s)

    0 [115840, 110005, 1000033, 116000]

    1 [267285, 263627, 267010, 26513]

    2 [335595, 350750]

    dtype: object

    编辑:

    如果只想要整数,你可以将值展平并转换为整数:

    s = pd.Series([item for sublist in s for item in sublist]).astype(int)

    替代方案:

    import itertools

    s = pd.Series(list(itertools.chain(*s))).astype(int)

    print (s)

    0 115840

    1 110005

    2 1000033

    3 116000

    4 267285

    5 263627

    6 267010

    7 26513

    8 335595

    9 350750

    dtype: int32

    时序:

    a = [['00115840', '00110005', '001000033', '00116000'],

    ['00267285', '00263627', '00267010', '0026513'],

    ['00335595', '00350750']]

    s = pd.Series(a)

    s = pd.concat([s]*1000).reset_index(drop=True)

    In [203]: %timeit pd.Series([[int(y) for y in x] for x in s], index=s.index)

    100 loops, best of 3: 4.66 ms per loop

    In [204]: %timeit s.apply(lambda x: [int(y) for y in x])

    100 loops, best of 3: 5.13 ms per loop

    #cᴏʟᴅsᴘᴇᴇᴅ sol

    In [205]: %%timeit

    ...: v = pd.Series(np.concatenate(s.values.tolist()))

    ...: v.astype(int).groupby(s.index.repeat(s.str.len())).agg(pd.Series.tolist)

    ...:

    1 loop, best of 3: 226 ms per loop

    #Wen solution

    In [211]: %timeit pd.Series(s.apply(pd.Series).stack().astype(int).groupby(level=0).apply(list))

    1 loop, best of 3: 1.12 s per loop

    flatenning的解决方案(@cᴏʟᴅsᴘᴇᴇᴅ的想法):

    In [208]: %timeit pd.Series([item for sublist in s for item in sublist]).astype(int)

    100 loops, best of 3: 2.55 ms per loop

    In [209]: %timeit pd.Series(list(itertools.chain(*s))).astype(int)

    100 loops, best of 3: 2.2 ms per loop

    #cᴏʟᴅsᴘᴇᴇᴅ sol

    In [210]: %timeit pd.Series(np.concatenate(s.values.tolist()))

    100 loops, best of 3: 7.71 ms per loop

    标签:python,pandas,time-series

    展开全文
  • 你非常接近,先是to_frame然后转移到T:s = pd.Series([1159730, 1], index=['product_id_y','count'], name=6159402)print (s)product_id_y 1159730count 1Name: 6159402, dtype: int64df = s.to_frame().Tpri...

    你非常接近,先是

    to_frame然后转移到

    T:

    s = pd.Series([1159730, 1], index=['product_id_y','count'], name=6159402)

    print (s)

    product_id_y 1159730

    count 1

    Name: 6159402, dtype: int64

    df = s.to_frame().T

    print (df)

    product_id_y count

    6159402 1159730 1

    df = s.rename(None).to_frame().T

    print (df)

    product_id_y count

    0 1159730 1

    DataFrame构造函数的另一个解决方案:

    df = pd.DataFrame([s])

    print (df)

    product_id_y count

    6159402 1159730 1

    df = pd.DataFrame([s.rename(None)])

    print (df)

    product_id_y count

    0 1159730 1

    展开全文
  • 将数据导入pandas DataFrame里,如下 df1 站点 年 月 日 时 NO NO2 NOx O3 0 1028 2017 1 1 1:00 27 59 100 8 1 1028 2017 1 1 2:00 14 60 82 5 2 1028 2017 1 1 3:00 15 53 75 8 报错 只给O3列用numpy.insert插入
  • pandas:基于numpy,生成两种对象,一种是series,一种是dataframe。 series: 一维数组类似array,series=索引+数据。区别是Series能保存不同种数据类型,字符串、boolean值、数字等,而numpy只能存储同类型数...
  • Pandas.Series 笔记以及遇到的坑

    千次阅读 2020-03-20 17:58:03
    pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False) 参数: data:要创建的数据,列表、字典等可迭代对象,以及按顺序存储的数据均可(必填)。 index:索引标签,可使用...
  • python3下pandas.Series 转numpy.ndarray

    千次阅读 2021-03-19 14:41:40
    python 2.7环境下可以用pandas.Series.as_matrix()方法,但该方法在python3下已经不支持 改用pandas.Series.to_numpy()
  • 主要介绍了Pandas把dataframe或series转换成list的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • pandas.series.tolist()函数结构及用法

    万次阅读 2019-04-16 20:49:09
    pandas.series.tolist()官方文档 pandas.series.tolist() # Return:返回list结构值 与numpy.ndarray.tolist用法相同
  • python学习之路:pandas中的series和dataframe.xlsx
  • python——pandas.Series.str 字符串操作

    千次阅读 2019-12-11 09:55:06
    '.join() 中支持的参数作为Series的元素是都可使用此方法 pd.Series([['1', '2', '3']]).join('?') 4/字符串内容判断 以下方法返回由True和False组成的Series contains(): 判断指定字符串或正则表达式...
  • pandas.Series.rank用法详解

    千次阅读 2018-03-26 14:29:40
    今天在看《Python数据分析实战》的时候发现了一个方法pandas.Series.rank()当时没有看明白,后来看了文档又结合着例子看懂了(其实超级简单,但是人的脑子有的时候就是有问题吧!一时半会儿转不过来弯儿,2333,可能...
  • 成功解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算问题 目录 解决问题 解决思路 解决方法 解决问题 pandas.core.frame.DataFrame、numpy.ndarray数据格式...
  • d1 = pd.Series(2*np.random.normal(size = 100)+3) d2 = np.random.f(2,4,size = 100) d3 = np.random.randint(1,100,size = 100) 2、统计分析用到的函数 d1.count() #非空元素计算 d1.min()
  • 成功解决除去或展开pandas.core.frame.DataFrame输出类型中所包含的省略号(列数据或者行数据显示不完全) 目录 解决问题 解决思路 解决方法 解决问题 pandas.core.frame.DataFrame输出类型中所包含...
  • 02_Pandas.concat连接DataFrame,Series 如何使用pandas.concat()函数连接pandas.DataFrame和pandas.Series。 将对以下内容进行说明。 pandas.concat的基本用法() 指定要连接的对象:objs 连接方向的指定(垂直...
  • 这是一个待解决的问题,主要还是引发自:pandas.dataframe数据格式为什么不能用 除列名以外的方式 定位到列(也有可能是我不知道!)。有人可能说可以用索引,但是!返回的并不是series类型,就算是,也没法计算,求...
  • cannot find module 'pandas.core.indexes.base' (No module named 'pandas.core.indexes') 原因: 生成数据文件的环境和打开的环境不一致。例如,使用pandas 0.18.1 生成文件,使用pandas 0.17.1.打开。 解决...
  • pandas.Series之间的运算

    千次阅读 2020-02-10 20:03:53
    本篇描述index相同的的两个Series的加减乘除运算。 此外:Series的其他运算——可以参考 《DataFrame和Series的简单运算(加减乘除)》 《Pandas.Series的加减乘除数学运算》 ...
  • import pandas as pdimport numpy as npfrom datetime import datetimedata = {'date': ['1998-03-01 00:00:01', '2001-04-01 00:00:01','1998-06-01 00:00:01','2001-08-01 00:00:01','2001-05-03 00:00:01','1994-...
  • ExponentialMovingWindow.cov(other=None, pairwise=None, ...other : Series, DataFrame, or ndarray, optional 如果没有提供,则默认是自身,并产生pairwise输出 pairwise : bool, default None If False then ..
  • 18_Pandas.DataFrame,取得Series的头和尾(head和tail) 当检查具有许多行的pandas.DataFrame,pandas.Series的数据时,返回最初行和最后行的方法head()和tail()很方便。 在此将对以下内容予以描述: 返回最初...
  • pandas.core.series.Series type(df[['data1']]) pandas.core.frame.DataFrame 以上这篇从DataFrame中提取出Series或DataFrame对象的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多...
  • Pandas 系列是带有轴标签的一维ndarray。...Pandas Series.to_csv()函数将给定的系列对象写入以逗号分隔的值(csv)文件/格式。用法: Series.to_csv(*args, **kwargs)参数:path_or_buf:文件路径或对象,如果提供No...
  • 遍历数据有以下三种方法: 简单对上面三种方法进行说明: iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问。...import pandas as pd inp = [{'c1':10, '
  • Pandas.Series的加减乘除数学运算

    千次阅读 2020-01-18 19:52:39
    from pandas import Series frame = Series([195, 73], index=[">825.625", "<=825.625"]) frame / 268 frame + 100 frame * 2 frame - 73 总结: 1. 加减乘除运算都是对 value 进行运算而不是 index 2. 注意...
  • 数据分析~pandas.Series 生成柱状图

    千次阅读 2018-07-02 16:23:37
    import pandas as pd import matplotlib.pyplot as plt #Series 生成柱状图 figure,pic=plt.subplots(2,1) data=pd.Series(np.random.rand(20),index=list('qwertyuiopasdfghjklz')) data.plot(kin...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,648
精华内容 2,259
关键字:

pandas.core.series.series