5. Pandas的Series的CURD
CURD的意思是创建、更新、读取和删除,即常说数据库里的增删改查的意思。
5.1创建Series
标准的创建Series的方式是用字符串列表作为Series对象的标识每个数据的方式,即label来标志出每个数据。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
print s
创建的Series对象s为:
hello 10
the 11
cruel 12
world 13
dtype: int64
5.2 读取数据
读取series对象的label和value的方式有很多。
- 通过label或者位置的方式访问、修改Series数据。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
print s
print s["hello"]
s["hello"] = 100
s[1] = 110
print s
- iteritems函数可以获得标签和值。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
for x in s.iteritems():
print x
程序的执行结果如下:
('hello', 10)
('the', 11)
('cruel', 12)
('world', 13)
5.3 修改数据
- 可以通过label或位置信息修改对应的数据,例如上边程序里的
s["hello"] = 100
s[1] = 110
- 当然也可用iloc、loc、at、iat等来处理。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
print s
s[0] = 100
s.loc["the"] = 101
s.at['cruel'] = 201
s.ix[3] = 300
print s
程序的执行结果如下:
hello 10
the 11
cruel 12
world 13
dtype: int64
hello 100
the 101
cruel 201
world 300
dtype: int64
5.4 增加数据
- 通过append、set_value函数为series增加数据。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
print s, "<-org"
s = s.append(pd.Series({"this":9}))
s = s.append(pd.Series({"this":10}))
print s, "<-append"
s.set_value("this", 8)
print s, "<-set_value"
程序执行结果:
hello 10
the 11
cruel 12
world 13
dtype: int64 <-org
hello 10
the 11
cruel 12
world 13
this 9
this 10
dtype: int64 <-append
hello 10
the 11
cruel 12
world 13
this 8
this 8
dtype: int64 <-set_value
在Series里是允许label相同的。
5.5 删除数据
删除在Series很少用。常用布尔选择或mask来选择数据组成新的Series。
import pandas as pd
idx = "hello the cruel world".split()
val = range(10, 14)
s = pd.Series(val, index = idx)
print s, "<-org"
t = s[s > 11]
print t,"<- bool sel"
print s,"<- still"
执行结果:
hello 10
the 11
cruel 12
world 13
dtype: int64 <-org
cruel 12
world 13
dtype: int64 <- bool sel
hello 10
the 11
cruel 12
world 13
dtype: int64 <- still
新生成的t是通过t = s[s > 11]
语句得到的(布尔选择),而s没有变化。t为:
cruel 12
world 13
dtype: int64 <- bool sel