繁体   English   中英

使用熊猫进行多级索引和计算

[英]Multilevel indexing and computation using pandas

我有一个包含以下内容的输入文件:

 case a1 b1.txt  c1.txt
 case a2 b2.txt  c2.txt
 case a3 b3.txt  c3.txt

其中b1.tx,c1.txt,b2.txt,c2.txt,b3.txt,c3.txt是用于读取内容的文本文件,而casea1,a2,a3是案例。

案例存储在数组中。

我正在读取txt文件为:

bfile=[]
cfile=[]
f1= open(inp.txt,'r')
for line in f1:
    cases.append(line.split()[0])
    bfile.append(line.split()[1])
    cfile.append(line.split()[2])

每个文件包含红色,绿色蓝色字符串和相应的值。 我正在从相应的文件中获取这些值并附加到数组:对于b文件,我将附加到b_red,b_green,b_blue。 对于c文件,附加到c_red,c_green,c_blue。

我已经尝试了相应的代码为:

b_red=[]
b_green=[]      
b_blue=[]
c_red=[]
c_green=[]  
c_blue=[]
for i in bfile:
f2=open(i,'r')
for line in f2.readlines():
    string=line
    if re.search(r'\bRED', string):
        redValue=float(string.split()[4])
        b_red.append(redValue)
        ---
        ---
for j in cfile:
f3= open(j, 'r')
for line in f3.readlines():
    string = line
    if re.search(r'\bRED', string):
        c_redValue=float(string.split()[4])
        c_red.append(c_redValue)
        ----

因此,b_red = [120.0,10.0,100.0],c_red [120.0,9.0,20.0],同样的值也存储在数组b_green,c_green,b_blue,c_blue中。

我试图将csv输出为:

df1=pd.DataFrame({'RED':b_red,'GREEN':b_green,'BLUE':b_blue })
df1.to_csv("OUT.CSV")
df2=pd.DataFrame({'RED':c_red,'GREEN':c_green,'BLUE':c_blue })
df2.to_csv("OUT.CSV")
df=df1-df2
df.to_csv("OUT.CSV")

其实我想要这个:

             RED         GREEN       BLUE
a1  B       120.0         14.0        12.0
    C       120.0         17.0        14.0
    diff    0             -3          -2

a2  B       10.0          3.0         1.2   
    C       9.0           3.0         0.2
    diff    1.0           0           1.0

a3  B       100.0        15.0         10.0
    C       80.0         18.0         5.0
    diff    20.0         -3.0         5.0

对于输出,请尝试以下操作:

ff=open("OUT.CSV","w")
print(df,file=ff)
ff.close()

但是,我认为您要求的输出格式不是真的csv。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM