Python_pandas

pandas学习 (二) Series和DataFrame操作

2018-08-06  本文已影响0人  闻榴莲的猫

数据运算与算术对齐

df.add(df, fill_value=0)#相当于df中的nan值以0代替 然后*2
df.add(df).fillna(0)#df*2 然后将其中的nan值以0代替

DataFrame和Series之间的运算

两种类型运算是将Series的索引匹配到DataFrame的列,然后沿着行一直向下广播:

frame = DataFrame(np.arange(12).reshape(4, 3), 
                  columns=list("bde"), 
                  index=["Utah", "Ohio", "Texas", "Oregon"])
series = frame.iloc[0]
frame + series
输出: DataFrame和Series的加法

函数的应用和映射

frame.sum()#输出的是每列的元素之和
frame.sum(axis=1)#axis=1时求每行元素之和
输出分别是:
f = lambda x: x.max() - x.min()#l求极差
frame.apply(f, axis=1)#对行或列进行f操作
输出:
frame1 = DataFrame(np.random.randn(12).reshape(4, 3))
f3 = lambda x: "%.2f" % x#保留小数后2位
frame1.applymap(f3)
输出:

值排序

frame1.sort_values(by=0, axis=1, ascending=False)#根据行索引'0'降序排序
输出:

判断索引是否重复

frame.index.is_unique DataFrame和Series通用, 输出值为Bool值

获取唯一值

unique(),该方法可以操作Series,从中抽取所有的唯一值并返回一个ndarray

计算Series各个值中出现的频率

value_counts()

frame["b"].value_counts(sort=True)#默认返回排好序的Series
输出:

判断所有元素是否在某个集合里

frame.isin([]),返回一个元素为Bool类型的pandas对象

判断每个元素是否为None

frame.isnull(),返回一个元素为Bool类型的pandas对象

对缺失值进行操作总结

字符串操作

将Series当做list来看,字符串操作都大同小异,使用时要先调用str属性返回StringMethods对象进行操作

print(frame1[0].str)
frame1[0].str.find("5")
输出:

字符串相关方法相信大家早已轻车熟路,在此就不多赘述了

上一篇 下一篇

猜你喜欢

热点阅读