pandas DataFrame的使用

DataFrame

使用apply函数

df = pd.DataFrame({'x':[1,2,3,4,5],'y':['a','a','b','b','c']})
df

   x  y
0  1  a
1  2  a
2  3  b
3  4  b
4  5  c

要使得df的x和y值拼接起来,增加为一列,可以使用apply函数:

def f(df):
    return str(df.x) + df.y
    
df['z'] = df.apply(f, axis=1)
df

   x  y   z
0  1  a  1a
1  2  a  2a
2  3  b  3b
3  4  b  4b
4  5  c  5c

apply默认的是传递整个dataframe,这里注意要加上axis=1,默认的是axis=0是把函数按照每一列进行变换,而axis=1为按照每一行进行转换
可以使用lambda函数:

df['zz'] = df.apply(lambda df: str(df.x)+df.y, axis=1)
#更有效率地,使用join,而不使用“+”
df['zz'] = df.apply(lambda df: "".join([str(df.x),df.y]), axis=1)

 x  y   z  zz
0  1  a  1a  1a
1  2  a  2a  2a
2  3  b  3b  3b
3  4  b  4b  4b
4  5  c  5c  5c

数据透视表的实现

数据透视表有多种实现方式,一些包装方法如pivot和pivot_table都可以实现,但是也具有局限性,这里使用更一般的方法。

df = pd.DataFrame({'birth':[2000,2000,2000,2001,2001,2001,2002,2002,2002],\
'name':['a','a','a','b','b','b','c' ,'c','c'],'code':[1,1,1,2,2,2,3,3,3],\
'habit':['drink','smoke','drink','eat','smoke','drink','eat','smoke','drink',],\
'value':['little','a few','some','some','little','a few','little','a few','some']})

df

 birth  code  habit name   value
0   2000     1  drink    a  little
1   2000     1  smoke    a   a few
2   2000     1  drink    a    some
3   2001     2    eat    b    some
4   2001     2  smoke    b  little
5   2001     2  drink    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值