Преобразование Excel в панды в numpy массив - PullRequest
0 голосов
/ 20 сентября 2018

Я мог бы импортировать данные Excel в python 3.6, используя pandas.

Код, который я использовал для этой цели, выглядит следующим образом:

import pandas as pd

import numpy as np

df=pd.read_excel("I:/Python/Excel.xlsx")

df.head()

Этот код выше показывает мне Table1 на ноутбуке Jupyter.

Я не понимаю, как преобразовать два столбца из таблицы Table1 (полученной из приведенного выше кода), которую я вижу в записной книжке Jupyter, в порядок с массивными массивами, чтобы провести их дальнейший анализ.

Тамнаходятся во всех 17 столбцах в этой таблице.Мне нужны «Столбец 15» и «Столбец 16» из каркаса панд в массив NumPy так, чтобы окончательная структура была следующей:

data_set=[[x1,y1],[x2,y2],...[x1000,y1000]]

# x1 = row1 from Column 15
# y1 = row1 from Column 16

Я, наконец, буду использовать эти данные для построения «графика рассеяния xy» вMatplotlib.Эту часть я умею делать.Многому научился на этом форуме.Спасибо всем!

Я искал это решение в Интернете, но не смог найти решение для него.

Спасибо за чтение.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Не можете ли вы использовать x=np.array(df)?Тогда x будет вашим новым массивом.

0 голосов
/ 20 сентября 2018

Я думаю, что нужно выбрать столбцы по позициям на iloc, преобразовать в массив numy и, если необходимо, перечислить:

np.random.seed(1245)

df = pd.DataFrame(np.random.randint(10, size=(3, 17))).add_prefix('data')
print (df)
   data0  data1  data2  data3  data4  data5  data6  data7  data8  data9  \
0      6      5      3      5      0      6      9      3      4      6   
1      7      1      2      9      3      9      8      8      7      1   
2      4      1      8      2      5      6      6      5      1      5   

   data10  data11  data12  data13  data14  data15  data16  
0       9       4       9       5       2       7       9  
1       7       5       5       2       2       4       0  
2       4       6       6       0       2       7       6  

data_set = df.iloc[:, [14, 15]].values.tolist()
#alternative
#data_set = df.values[:, [14, 15]].tolist()
print(data_set)
[[2, 7], [2, 4], [2, 7]]

РЕДАКТИРОВАТЬ:

#if want select columns by names
x = df['data01']
y = df['data02']

#if want select columns by positions
#x = df.iloc[:, 1]
#y = df.iloc[:, 2]

s = plt.scatter(x, y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...