[英]How to create a dataframe from numpy arrays?
我正在嘗試創建一個矩陣/ DataFrame,其中數字存儲在2個變量中
x = np.linspace(0,50)
y = np.exp(x)
我希望他們看起來像這樣:
x | y
___________________
0 | 1.0...
1 | 2.77...
2 | 7.6...
... | ...
50 | 5.18e+21...
我希望它在一個DataFrame
所以我可以使用pandas
庫。
提前致謝
import pandas as pd
df = pd.DataFrame({'x':x, 'y':y})
將字典中的鍵更改為所需的列名稱。
您可以執行以下操作。
import pandas as pd
import numpy as np
df = pd.DataFrame()
df['x'] = np.linspace(0,50)
df['y'] = np.exp(df['x'])
有了pandas
:
你可以發行
>>> xs = np.arange(51)
>>> ys = np.exp(xs)
獲取x和y值,然后使用。來構建數據框
>>> df = pd.DataFrame({'x': xs, 'y': ys})
>>> df
x y
0 0 1.000000e+00
1 1 2.718282e+00
2 2 7.389056e+00
3 3 2.008554e+01
...
在這種情況下,您還可以使用x值作為系列的索引而不會丟失任何信息。
>>> index = pd.RangeIndex(0, 51, name='x')
>>> exps = pd.Series(data=np.exp(index), index=index, name='y')
>>> exps
x
0 1.000000e+00
1 2.718282e+00
2 7.389056e+00
3 2.008554e+01
...
Name: y, dtype: float64
沒有pandas
:
考慮一下您是否真的需要數據幀或系列。 你可以把它留在
>>> xs = np.arange(51)
>>> ys = np.exp(xs)
然后索引ys
與整數0
, 1
, 2
,...得到的值exp(0)
exp(1)
exp(2)
,...
只是:
碼:
import pandas as pd
import numpy as np
x = np.linspace(0,50)
y = np.exp(x)
df = pd.DataFrame({'x': x, 'y': y})
只需創建一個元組列表並將其傳遞給DataFrame
構造函數:
df = pd.DataFrame([(i, np.exp(i)) for i in np.linspace(0,50)], columns=['x', 'y'])
產量
x y
0 1.000000e+00
1 2.718282e+00
2 7.389056e+00
...
你要找的是[np.concatenate][1]
。
因此,對於您的示例,代碼將是
import numpy as np
x = np.linspace(0,50)
y = np.exp(x)
z = np.concatenate((x.reshape(1,-1),y.reshape(1,-1))).T
print(z.shape)
# (2,50)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.