在每次迭代由python

时间:2019-03-14 09:32:41

标签: python pandas numpy

对于文件中的文件:

这是我的列表,其中包含每次迭代后3个文件中的值。

import pandas                                                                                   files = [r"C:\Users\Anjana\Documents\radar\HeightVsDopplr\EXP_DBS_CH4_24Apr2017_10_49_10_Beam2_W1_Az_90.00_Oz_10.00.mmts",r"C:\Users\Anjana\Documents\radar\HeightVsDopplr\EXP_DBS_CH4_24Apr2017_10_49_10_Beam4_W1_Az_180.00_Oz_10.00.mmts", r"C:\Users\Anjana\Documents\radar\HeightVsDopplr\EXP_DBS_CH4_24Apr2017_10_49_10_Beam1_W1_Az_0.00_Oz_0.00.mmts"]                                                                      
for file in files:
    if file.endswith(".mmts"):                                                                          
        csvfiles.append(str(file))                                                                               
a = pd.read_csv(file)
x = list(a0[:][:]['Mean'])           
matrix = np.empty((a0.shape[0],3))
matrix.fill(np.nan)

我需要这样的输出

  • matrix(row1,col1)应该是文件1中第一个值的值
  • matrix(row2,col1)应该是文件2中第一个值的值
  • matrix(row3,col1)应该是文件3中第一个值的值 样本输入:
  

文件1

+ -------- + ---------- +
|身高|均值|
+ -------- + ---------- +
| 3.33 | -0.41005 |
+ -------- + ---------- +
| 3.51 | 0.15782 |
+ -------- + ---------- +
| 3.69 | 0.12896 |
+ -------- + ---------- +

  

文件2

+ -------- + -------- +
|身高|均值|
+ -------- + -------- +
| 3.33 | 1.8867 |
+ -------- + -------- +
| 3.51 | 2.3108 |
+ -------- + -------- +
| 3.69 | 2.5924 |
+ -------- + -------- +

  

输出

array[-0.41005,0.15782 ,0.12896]
      [1.8867 ,2.3108 ,2.5924]

2 个答案:

答案 0 :(得分:0)

您的问题很笼统。尝试提供一个最小的,完整的可验证示例,否则很难为您提供帮助。

文件中包含什么?每行都是数字吗?信息太少。

在Python中,您可以使用多个迭代变量。

#open the files first
f1 = open("file1", "r")
f2 = open("file2", "r")
f3 = open("file3", "r")

#Assuming the files have the same number of lines:
for linef1, linef2, linef3 in zip(file1,file2,file3):
    #Assuming each line is a number
    matrix[i,0]= int(linef1)
    matrix[i,1]= int(linef1)
    matrix[i,2]= int(linef1)

答案 1 :(得分:0)

您的问题缺少上下文,所以我假设是

  1. 您要读取三个文件。

所以我有3个文件,a.txtb.txtc.txt

  

a.txt

1
2
3
  

b.txt

paul
sleeba
harry
  

a.txt

23
25
34
  1. 您需要单独访问这些文件内容,以便可以在特定的列中注册它们。
with open("a.txt", "r") as a, open("b.txt", "r") as b, open("c.txt", "r") as c:
    num = a.readlines()
    name = b.readlines()
    age = c.readlines()

print(num[0], name[0], age[0])

输出

1
paul
23

我看到您使用的是numpy,但是我对此无能为力,因为问题的情节很难帮助理解上下文。


更新:我仍然不理解您对不同文件的困惑,因为问题很模糊,但是请遵循文件中每一列的代码。

  

我的CSV

enter image description here

import pandas as pd
import numpy as np
a = pd.read_csv("data.csv")
out_list = [] 

for col in a.columns.values:  
    out_list.append(list(a[col]))

out_list = np.array(out_list)
print(out_list)
  

输出

array([['All industries  ', 'All industries  ', 'All industries  ',
        'All industries  ', 'All industries  ', 'All industries  ',
        'All industries  ', 'All industries  ', 'All industries  ',
        'All industries  '],
       ['H01', 'H04', 'H05', 'H07', 'H08', 'H09', 'H10', 'H11', 'H12',
        'H12'],
       ['644159', '567080', '59317', '17762', '560665', '33474', '6890',
        '18730', '99874', '99874']], dtype='<U16')

更新:来自其他文件

out_list = [] 

files = ["1.csv", "2.csv"]
for file in files:
    df = pd.read_csv(file)
    out_list.append(list(df["Mean"]))

out_list = np.array(out_list)
out_list
  

输出

array([[-0.41005,  0.15782,  0.12896],
       [ 1.8867 ,  2.3108 ,  2.5924 ]])