Некоторые странные явления в моем использовании np.array () для создания массива N * M - PullRequest
0 голосов
/ 30 мая 2019

Я использую оператор for и некоторые API, поддерживаемые пандами, для загрузки некоторых файлов, я создал список временных данных и, наконец, создал массив со списком данных. Этот массив можно создать, набрав несколько файлов за раз, но когда я импортирую несколько файлов, я создаю странный массив.Убедитесь, что все файлы имеют одинаковое количество столбцов и строк.Что мне делать?

Py3.6, последние панды

при загрузке нескольких файлов раз

import numpy as np
dirList=os.listdir(r'C:\Users\Administrator\Desktop\New folder\SecData\renzaorou\sec20190527')
priceList=[]
for i in dirList[:3]:  # few files
for i in dirList: # all files
    print(i)
    df=pd.read_excel('C:\\Users\\Administrator\\Desktop\\New folder\\SecData\\renzaorou\\sec20190527\\'+i)
#     row_price = df['price'].tolist()
#     print(df)
#     break
    priceList.append(df['price'].tolist())


np_price=np.array(priceList)

ожидаемый результат при загрузке нескольких файлов

array([[ 0.  ,  0.  ,  0.  , ...,  6.32,  6.32,  6.32],
       [ 0.  ,  0.  ,  0.  , ...,  3.45,  3.45,  3.45],
       [ 0.  ,  0.  ,  0.  , ..., 11.51, 11.51, 11.51]])

тогда, когда я загружаю все файлы

array([list([0.0, 0.0, 0.0, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.19, 6.1.........

я ожидаю нормальный вывод, когда я загружаю все файлы

1 Ответ

0 голосов
/ 30 мая 2019

Похоже, вам просто нужно добавить массивы в вашем списке. Попробуйте это:

import numpy as np
dirList=os.listdir(r'C:\Users\Administrator\Desktop\New folder\SecData\renzaorou\sec20190527')
priceList=[]
for i in dirList: # all files
    print(i)
    df=pd.read_excel('C:\\Users\\Administrator\\Desktop\\New folder\\SecData\\renzaorou\\sec20190527\\'+i)
    priceList.append(df['price'].values)


np_price=np.array(priceList)

Если столбец price не числовой, просто замените

priceList.append(df['price'].values)

с

priceList.append(pd.to_numeric(df['price']).values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...