2016-08-30 2 views
0

Здравствуйте, я обработать файл первенствовать и принять некоторые параметры его, чтобы создать много таблиц структуру таблиц следующее:Как построить следующие таблицы?

"AWK|USL|R|SVKDIKG_tVstiKg|S|[PARAMETER1]~BURAGO~[PARAMETER2]~WVDG~333" "AFUSLR~USLSSHS~Farm~~%ERD_ARGV=MR4567.%VRSD%.%23WF%.333.%RVB%.tRt" 
"AWK|USL|R|Bimbo|S|[PARAMETER3]~K~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Bimbo|S|[PARAMETER3]~Q~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Ford|S|[PARAMETER3]~K~999" "[PARAMETER3]~K" 
"AWK|USL|R|Ford|S|[PARAMETER3]~Q~999" "[PARAMETER3]~K" 

параметры, которые нужно использовать для создания таблиц содержатся в первенствует файл, и они выглядит следующим образом:

123123,RIBICOM,FACTIBLE 
050944,TELCOM,423423 
. 
. 
. 
42342,CORPS,233243 

идея заключается в том, чтобы взять «» как разделитель столбцов, где столбец кулак будет являться „параметр1“, второй столбец „PARAMETER2“ и, наконец, «параметр3 «третий столбец, сырой по сырому, для каждого сырья или этого архива мне нужно создать одну таблицу, заполняющую место ho lders моего шаблона следующим образом:

"AWK|USL|R|SVKDIKG_tVstiKg|S|123123~BURAGO~RIBICOM~WVDG~333" "AFUSLR~USLSSHS~Farm~~%ERD_ARGV=MR4567.%VRSD%.%23WF%.333.%RVB%.tRt" 
"AWK|USL|R|Bimbo|S|FACTIBLE~K~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Bimbo|S|FACTIBLE~Q~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Ford|S|FACTIBLE~K~999" "FACTIBLE~K" 
"AWK|USL|R|Ford|S|FACTIBLE~Q~999" "FACTIBLE~K" 

более очистить заполнителей шаблона являются следующие:

[PARAMETER1] 
[PARAMETER2] 
[PARAMETER3] 

те вещи, которые мне нужно заполнить,

пример выше был бы желательным выходом для первой строки, мне нужно создать файл txt со всеми связанными таблицами, чтобы достичь этого. Я попытался:

import pandas as pd 
# -*- coding: utf-8 -*- 
xl = pd.ExcelFile("Book1.xlsx") 
#to clean from duplicates 
df = xl.parse("Sheet1") 
df=df.drop_duplicates() 
#these are the values that I am concatenating below 
Parameter1=df[u'Header1 '] 
Parameter2=df[u'Header2 '] 
Parameter3=df[u'Header3 '] 

#This is the dataframe with the corresponding columns 
important_Parameters=df[u'Header1 '].astype(str)+","+df[u'Header2 '].astype(str)+","+df[u'Header3 '].astype(str) 

#to write my dataframe on disk. 
important_Parameters.to_csv("important33.txt", index=False) 

Я не уверен, что было бы лучшим подходом для продолжения, поскольку я использовал такие вещи в bash, используя «sed» и «awk», но на этот раз я хотел бы попробовать использовать pandas и python. Я очень ценю любое предложение продолжить эту конкретную задачу.

+0

вход и выход выглядит так же, вы можете уточнить то же самое? Также, что пытается сделать Parameter1, Parameter2 и Parameter3 – Shijo

+0

да, конечно. Фактически мне просто нужно заменить вещи внутри следующих символов: «[», «]« Я сделал некоторые владельцы мест с именами: [PARAMETER1], [PARAMETER2] и [ PARAMETER3], указанном в верхних строках, – neo33

+0

Вам нужно использовать данные? Можете ли вы использовать словари или json вместо этого? – WeShall

ответ

2

вы попробуете это

import pandas as pd 
# -*- coding: utf-8 -*- 
df = pd.read_csv("param.csv") 
print df 
df=df.drop_duplicates() 
filename='sample.txt' 

print "\n\nReplace with new values" 
for index, row in df.iterrows(): 
    print "New Values \n\n" 
    print row 
    f=open(filename) 
    filedata = f.read() 
    filedata=filedata.replace("[PARAMETER1]",row[0]) 
    filedata=filedata.replace('[PARAMETER2]',row[1]) 
    filedata=filedata.replace('[PARAMETER3]',row[2]) 
    print filedata 

выход

 Parameter1 Parameter2 Parameter3 
    0 123123A RIBICOM FACTIBLE 
    1 050944BS  TELCOM  423423 


    Replace with new values 
    New Values 


    Parameter1  123123A 
    Parameter2  RIBICOM 
    Parameter3 FACTIBLE 
    Name: 0, dtype: object 
    AWK|USL|R|SVKDIKG_tVstiKg|S|123123A~BURAGO~RIBICOM~WVDG~333 AFUSLR~USLSSHS~Farm~ 
    ~%ERD_ARGV=MR4567.%VRSD%.%23WF%.333.%RVB%.tRt 
    AWK|USL|R|Bimbo|S|FACTIBLE~K~999 USLo99941VRR.VxV 
    AWK|USL|R|Bimbo|S|FACTIBLE~Q~999 USLo99941VRR.VxV 
    AWK|USL|R|Ford|S|FACTIBLE~K~999 FACTIBLE~K 
    AWK|USL|R|Ford|S|FACTIBLE~Q~999 FACTIBLE~K 
    New Values 


    Parameter1 050944BS 
    Parameter2  TELCOM 
    Parameter3  423423 
    Name: 1, dtype: object 
    AWK|USL|R|SVKDIKG_tVstiKg|S|050944BS~BURAGO~TELCOM~WVDG~333 AFUSLR~USLSSHS~Farm~ 
    ~%ERD_ARGV=MR4567.%VRSD%.%23WF%.333.%RVB%.tRt 
    AWK|USL|R|Bimbo|S|423423~K~999 USLo99941VRR.VxV 
    AWK|USL|R|Bimbo|S|423423~Q~999 USLo99941VRR.VxV 
    AWK|USL|R|Ford|S|423423~K~999 423423~K 
    AWK|USL|R|Ford|S|423423~Q~999 423423~K 

Sample.txt

"AWK|USL|R|SVKDIKG_tVstiKg|S|[PARAMETER1]~BURAGO~[PARAMETER2]~WVDG~333" "AFUSLR~USLSSHS~Farm~~%ERD_ARGV=MR4567.%VRSD%.%23WF%.333.%RVB%.tRt" 
"AWK|USL|R|Bimbo|S|[PARAMETER3]~K~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Bimbo|S|[PARAMETER3]~Q~999" "USLo99941VRR.VxV" 
"AWK|USL|R|Ford|S|[PARAMETER3]~K~999" "[PARAMETER3]~K" 
"AWK|USL|R|Ford|S|[PARAMETER3]~Q~999" "[PARAMETER3]~K" 
+0

Здравствуйте, спасибо много для поддержки это было очень полезно только одно, что было бы содержимым файла c alled: sample.txt, следуя вашему подходу. – neo33

+0

Где находится файл, содержащий таблицы? – neo33

+0

Я просто включил содержимое из примера.txt – Shijo

Смежные вопросы