pandas map与apply

map

map不是df的方法,而是Series的方法
可以用来对df的某一列的所有元素执行某个操作

data["timestamp"].map(lambda x: str2datetime(x)) # 将字符串转为TimeStamp类型, 注意不是data[["timestamp"]]

apply

可以对df的多行或者多列的元素执行某一操作

def func(item):
	"""
	将“01”和“02”两列进行合并
	"""
    if item["01"] != item["01"] and item["02"] != item["02"]:
        new_item = np.nan
    elif item["01"] != item["01"]:
        new_item = item["02"]
    else:
        new_item = item["01"]
    return new_item

index1 = pd.date_range(start="2018-10-1", end="2018-10-2", freq="5min")
index2 = pd.date_range(start="2018-10-1", end="2018-10-2", freq="10min")

data1 = pd.DataFrame(np.arange(1, 290, 1), index=index1)
data2 = pd.DataFrame(np.arange(1, 146, 1), index=index2)

data = data1.join(data2, lsuffix="1", rsuffix="2")
data["new"] = data.apply(lambda x: func(x), axis=1) # axis=1, x为data的每一行
data.drop(["01", "02"], axis=1)

字典妙用

def trans_sport_type(x):
    map_dict = {1: "步数", 2: "卡路里", 3: "运动距离", 4: "运动时长", 5: "高度", 6:"静态心率", 7: "动态心率"}
    x = map_dict[x]
    return x
hr[cols[1]] = hr[cols[1]].map(lambda x: trans_sport_type(x))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值