У меня есть файл ascii, содержащий два столбца. Мне нужно добавить еще два столбца. Выходной текстовый файл должен содержать эти два столбца и исходные два в квадратных скобках, разделенных запятой. Открывая ascii в gedit, мой входной файл выглядит так:
1 2
3 4
5 6
7 8
в конце концов я хочу, чтобы это было так:
2 6 (1,2)
6 12 (3,4)
10 18 (5,6)
14 24 (7,8)
так что мои два новых столбца кратны двум/трем исходным. Я только дошел до чтения в файле фрейма данных pandas и уже запутался
import pandas as pd
df = pd.read_csv("test.txt")
print(df)
1 2
0 3 4
1 5 6
2 7 8
Предполагается, что фрейм данных pandas, который я хочу вывести в ascii, должен иметь следующую структуру:
2 6 (1 2)
0 6 12 (3 4)
1 10 18 (5 6)
2 14 24 (7 8)
Я даже не знаю, как начать, потому что совершенно не понимаю структуру и т. д. Любая помощь приветствуется!
Кто-то, вероятно, может помочь вам более непосредственно с Pandas. Я не использую его. Но на вашем месте я бы не спрашивал здесь такую базовую информацию. Я бы просто понял это для себя.
Вы можете прочитать файл без панд:
we=open('new.txt','w')
with open('read.txt') as f:
for line in f:
#read a line
a,b=line.split('\t')
#get two values as string
c=2*int(a)
d=3*int(b)
#calculate the other two values
### edited
e = ''.join(("(",str(a),",",str(b),")"))
print(e)
####
#e=str(tuple(a,b))
#we.write(str(c)+' '+str(d)+e+'\n'
#write to new file
Надеюсь это поможет
Вы должны запустить свой код в отладчике, остановиться на строке
print(df)
и действительно посмотреть наdf
и выяснить, что у вас там действительно есть. В качестве альтернативы читайте документацию Pandas, пока не поймете, что у вас получилось. Заменитеprint(df)
кодом, который извлекает значения изdf
и печатает их. Это не может быть очень трудно понять.