сохранять значения из списка в массив после каждой итерации состоит из указанного столбца файлов в Python - PullRequest
0 голосов
/ 14 марта 2019

Для файла в файлах:

Это мой список, который состоит из значений из 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
  • матрица (строка2, столбец1) должна быть значением первого значения из файла 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 голосов
/ 14 марта 2019

Вашему вопросу не хватает контекста, поэтому я предполагаю, что

  1. У вас есть три файла для чтения.

Итак, у меня 3 файла, a.txt, b.txt, c.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 ]])
0 голосов
/ 14 марта 2019

Ваш вопрос очень общий.Попробуйте привести как минимум полный проверяемый пример, иначе вам будет трудно помочь.

Что находится в файлах?Является ли каждая строка числом?Слишком мало информации.

В 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...