Pandas总结

说是总结,其实就是目前做比赛用到的一些语句和踩过的坑。
首先我要处理的文件是一个jsonl文件,这个文件其实就是存储了多个json格式数据的文件,处理jsonl文件需要安装jsonllines库,安装方法很简单就是pip。
打开文件:

t = [[0 for _ in range(3)] for _ in range(5000)] # 首先构造一个二维列表,5000行3列
i = 0
with jsonlines.open('XXX.jsonl', mode='r') as reader:    
    for row in reader:
        t[i][0] = row['context']
        t[i][1] = row['query']
        t[i][2] = 1
        i += 1

列表转换为DataFrame:

train = pd.DataFrame(t, columns=['context', 'query', 'label'])

构造负样本数据:

tr = [[0 for _ in range(3)] for _ in range(45000)] 
j = 0
for i in range(5000):
    df = train.drop(i, axis=0)  # 每次循环都将不包含第i个query的数据赋值给df
    df_i = df['context'].sample(9, axis=0)  # 随机采样9行
    df_i.reset_index(drop=True, inplace=True)  # 因为采样后的数据保持原有数据的索引,
    #所以要重新建立索引,每次选取9个数据都是从0到8建索引
    while j < (i+1)*9:
        tr[j][0] = df_i[j - i*9] # 保证每次索引都是0-8,因为df_i只有9个值
        tr[j][1] = train['query'][i]
        tr[j][2] = 0
        j += 1

列表转换为DataFrame:

train_1 = pd.DataFrame(tr, columns=['context', 'query', 'label'])

DataFrame拼接:

train_data = pd.concat([train, train_1])

写入csv文件:

train_data.to_csv('train_data.csv', index=None)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值