• ## 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

展开全文
• click~default-1-104079354.nonecase&utm_term=pandas.core.series.Series&spm=1018.2118.3001.4449
https://blog.csdn.net/weixin_43794311/article/details/104079354?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160721640419724848141042%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160721640419724848141042&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-104079354.nonecase&utm_term=pandas.core.series.Series&spm=1018.2118.3001.4449
展开全文
• 将数据导入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(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False) 参数： data：要创建的数据，列表、字典等可迭代对象，以及按顺序存储的数据均可（必填）。 index：索引标签，可使用...
• python 2.7环境下可以用pandas.Series.as_matrix()方法，但该方法在python3下已经不支持 改用pandas.Series.to_numpy()
• 主要介绍了Pandas把dataframe或series转换成list的方法，文中通过示例代码介绍的非常详细，对大家的学习或者工作具有一定的参考学习价值，需要的朋友们下面随着小编来一起学习学习吧
• pandas.series.tolist()官方文档 pandas.series.tolist() # Return:返回list结构值 与numpy.ndarray.tolist用法相同
• python学习之路：pandas中的series和dataframe.xlsx
• '.join() 中支持的参数作为Series的元素是都可使用此方法 pd.Series([['1', '2', '3']]).join('?') 4/字符串内容判断 以下方法返回由True和False组成的Series contains(): 判断指定字符串或正则表达式...
• 今天在看《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.打开。 解决...
• 本篇描述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 ..
• 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, '
• 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. 注意...
• 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...

...