繁体   English   中英

使用下标连接列表 python

[英]concatenate lists with subscripts, python

更新:使用@azro 代码并仅修改for 的索引。 它不会用您的答案标记我的错误,代码工作正常,但是我仍然没有得到预期的结果,我输入了完整的代码。

arch is dataframe
channels=['ch1','ch1']
targets=['op1','op2']
l=[]
m = []
n = []
for ch in channels:
    for tar in targets:
        for j in range(1,22):                                                        
            df=arch[(arch.Año.isin(año)) & (arch['Channel'] == ch) & (rcha['Week'] == j)]

           l.append(df[['time',tar]].set_index('time').rename(columns={'time' : 'time' + str(j)}))
        m.append(l)
     n.append(m)

a = []
for i in range(len(n)):
    for j in range(len(m)):
        for k in range(len(l)):
            a.append(n[i][j][k])
a = pd.concat(a, axis=1).reset_index()

通过打印“a”我得到

time | op1 | op1 |...| op2 | op2 |..| op1 | op1 | op2 |..| op2 
1    | 0.2 | 0.1 |   | 0.2 | 0.1 |..| 0.1 | 0.1 | 0.2 |..| 0.8
2    | 0.3 | 0.4 |   | 0.1 | 0.3 |..| 0.2 | 0.7 | 0.9 |..| 0.3
3    | 0.7 | 0.8 |   | 0.9 | 0.11|..| 0.4 | 0.8 | 0.7 |..| 0.8

我有这样的,因为我在“通道”中有两个元素,在“目标”中有两个元素,我需要为“ch1 with op1”、“ch1 with op2”、“ch2 with op1”、“ch2”打印一个表格与 op2"。

for ch1
time | op1 | op1 |..
1    | 0.2 | 0.1 |..  
2    | 0.3 | 0.4 |..
3    | 0.7 | 0.8 |

time | op2 | op2 |..
1    | 0.2 | 0.1 |..
2    | 0.1 | 0.3 |..
3    | 0.9 | 0.11|.. 


for ch2

time | op1 | op1 | ..
1    | 0.1 | 0.1 | ..
2    | 0.2 | 0.7 | ..
3    | 0.4 | 0.8 | ..

time | op2 |..| op2 
1    | 0.2 |..| 0.8
2    | 0.9 |..| 0.3
3    | 0.7 |..| 0.8

我认为你正在尝试做这样的事情:

a=n[0][0][0]
for i in range(len(n)):
    for j in range(len(n)):
        for k in range(len(n)):
            if not i==j==k==0:
                a=pd.concat((a, n[i][j][k]),axis=1).reset_index()

'a' 是您的累积串联,因此您需要将其与下一个条目串联

您需要通过多个concat来连接而不只是一个,您最好一次性完成

a = []
for i in range(len(n)):
    for j in range(len(n)):
        for k in range(len(n)):
            a.append(n[i][j][k])
a = pd.concat(a, axis=1).reset_index()

如果我理解正确,你想要这个:

import numpy as np
a = pd.concat(np.flatten(np.array(n)), axis=1).reset_index()

如果这不起作用,请与我们分享您的n数组的小样本以使其正常工作。

暂无
暂无

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

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