发布
社区首页 >问答首页 >在python中遍历单个列表的多个元素

在python中遍历单个列表的多个元素
EN

Stack Overflow用户
提问于 2021-08-18 21:25:13
回答 1查看 50关注 0票数 0

我有一个数据集,如下所示:

代码语言:javascript
代码运行次数:0
复制
Zn  Pb    Ag  Cu  Mo   Cr  Ni  Co   Ba
87   7  0.02  42   2   57  38  14  393
70   6  0.02  56   2   27  29  20  404
75   5  0.02  69   2   44  23  17  417
70   6  0.02  54   1   20  19  12  377

我想用这个数据集创建一个熊猫数据帧。我写了下面的函数:

代码语言:javascript
代码运行次数:0
复制
def correlation_iterated(raw_data,element_concentration):

    columns = element_concentration.split()
    df1 = pd.DataFrame(columns=columns)
   
    
    data1=[]
    selected_columns = raw_data.loc[:, element_concentration.split()].columns   
    for i in selected_columns:
        for j in selected_columns:
            # another function that takes 'i' and 'j' and returns 'a'
            zipped1 = zip([i], a)
            data1.append(dict(zipped1))
            
        
        
    df1 = df1.append(data1,True)
        

    print(df1)

此函数用于为每个元素执行计算,并创建一个9x9的熊猫数据帧,并将每个计算结果存储在每个单元格中。但我得到了以下信息:

代码语言:javascript
代码运行次数:0
复制
          Zn  Pb  Ag  Cu  Mo  Cr  Ni  Co        Ba
0   1.000000 NaN NaN NaN NaN NaN NaN NaN       NaN
1   0.460611 NaN NaN NaN NaN NaN NaN NaN       NaN
2   0.127904 NaN NaN NaN NaN NaN NaN NaN       NaN
3   0.276086 NaN NaN NaN NaN NaN NaN NaN       NaN
4  -0.164873 NaN NaN NaN NaN NaN NaN NaN       NaN
..       ...  ..  ..  ..  ..  ..  ..  ..       ...
76       NaN NaN NaN NaN NaN NaN NaN NaN  0.113172
77       NaN NaN NaN NaN NaN NaN NaN NaN  0.027251
78       NaN NaN NaN NaN NaN NaN NaN NaN -0.036409
79       NaN NaN NaN NaN NaN NaN NaN NaN  0.041396
80       NaN NaN NaN NaN NaN NaN NaN NaN  1.000000

[81 rows x 9 columns] 

这基本上是计算第一列的结果并将其仅存储在第一列中,然后进行计算并将新行附加到该列。如何编写代码,以便在完成一列计算后将新计算追加到下一列?我想要这样的东西:

代码语言:javascript
代码运行次数:0
复制
    Zn         Pb         Ag Cu Mo Cr Ni Co Ba
0   1.000000   0.460611   ...
1   0.460611   1.000000   ...
2   0.127904   0.111559   ...
3   0.276086   0.303925   ...
4  -0.164873  -0.190886   ...
5   0.402046   0.338073   ...
6   0.174774   0.096724   ...
7   0.165760  -0.005301   ...
8  -0.043695   0.174193   ...

[9 rows x 9 columns]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-18 22:08:26

你能不能这样做:

代码语言:javascript
代码运行次数:0
复制
def correlation_iterated(raw_data,element_concentration):

    columns = element_concentration.split()
    
    data = {}
    selected_columns = raw_data.loc[:,columns].columns   
    for i in selected_columns:
        temp = []
        for j in selected_columns:
            # another function that takes 'i' and 'j' and returns 'a'
            temp.append(a)

        data[i] = temp
            
    df = pd.DataFrame(data)
    print(df)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68839506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档