pandas数据操作
字符串方法
Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素
t = pd.Series(['a_b_c_d','c_d_e',np.nan,'f_g_h']) t t.str.cat(['A','B','C','D'],sep=',') #拼接字符串 t.str.split('_') #切分字符串 t.str.get(0) #获取指定位置的字符串 t.str.replace("_", ".") #替换字符串 t.str.pad(10, fillchar="?") #左补齐 t.str.pad(10, side="right", fillchar="?") #右补齐 t.str.center(10, fillchar="?") #中间补齐 t.str.find('d') #查找给定字符串的位置,左边开始 t.str.rfind('d') #查找给定字符串的位置,右边开始
数据转置(行列转换)
dates = pd.date_range('20130101',periods=10) dates df = pd.DataFrame(np.random.randn(10,4),index=dates,columns=['A','B','C','D']) df df.T #行列转换
对齐
操作不同的维度需要先对齐,Pandas会沿着指定维度执行:
- 这里对齐维度指的是对齐index
- shift(2)指沿着时间轴将数据顺移两位
- sub指减法,与NaN进行操作,结果也是NaN
s = pd.Series([1,3,5,np.nan,6,8,9,10,11,12],index=dates) s s = pd.Series([1,3,5,np.nan,6,8,9,10,11,12], index=dates).shift(2) s df.sub(s, axis='index')
对数据应用function
df.apply(np.cumsum)#cumsum 累加
频率
计算值出现的次数,类似直方图
s = pd.Series(np.random.randint(0, 7, size=10))
s
s.value_counts()