Pandas相关数据处理

源数据

源数据

  • 读取数据
df = pd.read_csv('C:/Users/items/WorkRelated/items.csv')
  • 取某列等于某个值的数据
df_app = df[df['channel']=='app']  #取渠道为app的数据

-取某行某列的某个值

catevalue = df_app.loc[idx, 'cate']  # 对cate列,逐行取值
  • 取某列为NULL的数据
    注意这里,在python中是没有NULL的,python读取csv中的null为NaN
# pd.isna()返回的是bool值,为空的返回True,否则为False, df_app[bool值],返回bool值为True的数据,即返回end_time列为空的数据
df_app = df_app[pd.isna(df_app['end_time'])]
  • 取某列不为null的数据
df_app[pd.isna(df_app['end_time'])==False]
  • 取某几列数据
# 取出df_app中只包含这三列的数据
df_app = df_app[['cate', 'item_id', 'end_time']]
  • 最终输出

最终输出

对每个用户关联每个素材,得到每个用户与各个素材的dataframe,便于后续预估每个用户对每个素材的ctr

  • 用户表
    user.csv

  • app素材表
    app.csv

  • 读取数据

df_users = pd.read_csv(FLAGS.user_path,
                           names=user_COLUMNS,
                           skipinitialspace=True,
                           encoding="utf-8",
                           engine="python")
df_app = pd.read_csv()
  • 将每个用户复制app素材份
 # 将每个用户复制app素材数份
userapp = pd.DataFrame(np.repeat(df_users.values, len(df_app), axis=0), columns=user_COLUMNS) 
  • 将app素材复制用户份
# (np.tile(A, (n,1)))表示对于矩阵A,朝着样本的方向复制n份,特征的方向复制1份
repeat_app_items = np.tile(df_app, (len(df_users), 1))
app_items = pd.DataFrame(repeat_app_items, columns=item_COLUMNS)
  • 关联这两个dataframe
# 此时这两个dataframe行数相同,纵向链接
user_app = pd.concat([userapp, app_items], axis=1)   # app侧的预测数据
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值