我想以与现有txt文件匹配的方式保存我的数据帧(我有一个基于此txt文件的训练模型,现在我想预测需要匹配此格式的新数据).

目标TXT文件如下所示(前3行):

2 qid:0 0:0.4967141530112327 1:-0.1382643011711847 2:0.6476885381006925 3:1.523029856408025 4:-0.234153374723336 
1 qid:2 0:1.465648768921554 1:-0.2257763004865357 2:0.06752820468792384 3:-1.424748186213457 4:-0.5443827245251827 
2 qid:0 0:0.7384665799954104 1:0.1713682811899705 2:-0.1156482823882405 3:-0.3011036955892888 4:-1.478521990367427 

第一列只是一个随机整数(这里是2和1) Qid总是通过冒号连接到一个整数. 然后,对于其余的列,整数后面跟着一个浮点数.

我的数据帧如下所示:

data = {'label': [2,3,2],
        'qid': ['qid:0', 'qid:1','qid:0'],
       '0': [0.4967, 0.4967,0.4967],
       '1': [0.4967, 0.4967,0.4967],
       '2': [0.4967, 0.4967,0.4967],
       '3': [0.4967, 0.4967,0.4967],
       '4': [0.4967, 0.4967,0.4967]}

df = pd.DataFrame(data)

推荐答案

试试这个,让我们知道它是否适用于您的情况

data = pd.read_csv('output_list.txt', sep=" ", header=None)

data.columns = ["a", "b", "c", "etc."]

google colab pic

Updated code very messy如果这解决了您的问题,则可以使用NumPy数组方法对其进行更新以处理大量数据

for i in list(data.keys()):
  if i=="label" or i=="qid":
    pass
  else:
    data[i]=[str(i)+":"+str(j) for j in list(data[i])]

enter image description here

Python相关问答推荐

数字梯度的意外值

拆分pandas列并创建包含这些拆分值计数的新列

使用Keras的线性回归参数估计

根据另一列中的nan重置值后重新加权Pandas列

从numpy数组和参数创建收件箱

Python库:可选地支持numpy类型,而不依赖于numpy

C#使用程序从Python中执行Exec文件

如何在类和classy-fastapi -fastapi- followup中使用FastAPI创建路由

在Mac上安装ipython

在ubuntu上安装dlib时出错

joblib:无法从父目录的另一个子文件夹加载转储模型

使用特定值作为引用替换数据框行上的值

如何使regex代码只适用于空的目标单元格

使用Python从rotowire中抓取MLB每日阵容

使用__json__的 pyramid 在客户端返回意外格式

如何过滤组s最大和最小行使用`transform`'

如何在一组行中找到循环?

Python Mercury离线安装

Pandas:计数器的滚动和,复位

Regex用于匹配Python中逗号分隔的AWS区域