Ada*_*m_G 38 python numpy pandas
我想将除了pandas数据帧的第一列之外的所有内容转换为numpy数组.由于某些原因使用columns=参数DataFrame.to_matrix()不起作用.
DF:
viz a1_count a1_mean a1_std
0 n 3 2 0.816497
1 n 0 NaN NaN
2 n 2 51 50.000000
Run Code Online (Sandbox Code Playgroud)
我试过,X=df.as_matrix(columns=[df[1:]])但这产生了所有NaNs 的数组
176*_*ing 65
简单的方法是"价值"属性 df.iloc[:,1:].values
a=df.iloc[:,1:]
b=df.iloc[:,1:].values
print(type(df))
print(type(a))
print(type(b))
Run Code Online (Sandbox Code Playgroud)
所以,你可以得到类型
<class 'pandas.core.frame.DataFrame'>
<class 'pandas.core.frame.DataFrame'>
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
Suv*_*uvo 43
请使用Pandasto_numpy()方法。下面是一个例子——
>>> import pandas as pd
>>> df = pd.DataFrame({"A":[1, 2], "B":[3, 4], "C":[5, 6]})
>>> df
A B C
0 1 3 5
1 2 4 6
>>> s_array = df[["A", "B", "C"]].to_numpy()
>>> s_array
array([[1, 3, 5],
[2, 4, 6]])
>>> t_array = df[["B", "C"]].to_numpy()
>>> print (t_array)
[[3 5]
[4 6]]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。您可以使用选择任意数量的列
columns = ['col1', 'col2', 'col3']
df1 = df[columns]
Run Code Online (Sandbox Code Playgroud)
然后应用to_numpy()方法。
DSM*_*DSM 37
该columns参数接受列名称的集合.您传递的列表包含两行数据框:
>>> [df[1:]]
[ viz a1_count a1_mean a1_std
1 n 0 NaN NaN
2 n 2 51 50]
>>> df.as_matrix(columns=[df[1:]])
array([[ nan, nan],
[ nan, nan],
[ nan, nan]])
Run Code Online (Sandbox Code Playgroud)
而是传递所需的列名称:
>>> df.columns[1:]
Index(['a1_count', 'a1_mean', 'a1_std'], dtype='object')
>>> df.as_matrix(columns=df.columns[1:])
array([[ 3. , 2. , 0.816497],
[ 0. , nan, nan],
[ 2. , 51. , 50. ]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
169647 次 |
| 最近记录: |