array矩阵列表与dataframe互相转换

21 篇文章 1 订阅
3 篇文章 0 订阅

1.array转换为DataFrame

import numpy as np
import pandas as pd
array_demo= np.random.randn(2,4)
df = pd.DataFrame(array_demo)

# 将多个一维合并df
df = pd.DataFrame()
arr5=np.array([1,1,2,2])
arr6=np.array([3,3,4,4])
arr3=np.array([3,3,4,4])
df["arr3"] = arr3
df["arr5"] = arr5
df["arr6"] = arr6
print(df)

 2 DataFrame转换为array

import numpy as np
import pandas as pd
mmm = np.array(df)

3 增加,删除,插入,合并

append()
 1 在数据末尾做追加,有返回值,不改变原来数组的结构
 2 如果是多维数组,append后变成一维数组,在末尾添加
 3 如果是多维数组添加多维数组,append后也变成一维数组
a = np.array([[1,2,3],[4,5,6]])
result = np.append(a, np.array([[7,8,9],[4,5,6]]))

insert()

   1 多维数组在指定位置上加入一个值,默认当作一维数组进行操作,返回一维数组
   2 添加的value值是一个一维数组或列表或单个值,不能插入多维数组
   3 如果要往多维数组中添加值,需要指定axis,并且添加的行或者列元素长度和插入的元素长度相同,否则报错

a = np.array([[1,2,3],[4,5,6]])
result = np.insert(a, 0, [99])
result = np.insert(result, 1, 66)

 delete()

1 多维数组不指定axis会改变多维数组为一维数组,指定axis可以删除一行或者一列

arr3=np.arange(20).reshape(4,5)
print('#####arr3不指定 axis ')
print(arr3)
print(np.delete(arr3,0))
print('#####arr3指定 axis 0删除行 1 删除列#########')
print(np.delete(arr3, 3, axis=0))
print(np.delete(arr3, 3, axis=1))

concatenate()

1 多维数组axis指定行或者列合并

2 行列相加时,对应格式一致

arr5=np.array([[1,1],[2,2]])
arr6=np.array([[3,3],[4,4]])

print(np.concatenate((arr5,arr6))) # mo默认axis=0
# print(np.concatenate((arr5,arr6), axis=0))
print(np.concatenate((arr5,arr6, arr3), axis=0))
print(np.concatenate((arr5,arr6), axis=1))
# print(np.concatenate((arr5,arr6, arr3), axis=1))

4 np默认值填充

   1 numpy 创建默认值数组创建方阵 

   2 补充空值(指定值)

data = data.replace(to_replace = "?", value = np.nan)
data.dropna(inplace = True)
data.isnull().any()

   3 特殊值

5 pd默认值填充

1. 用固定值填充

  data['灰度分'] = data['灰度分'].fillna('-99')

2. 用均值填充

  data['灰度分'] = data['灰度分'].fillna(data['灰度分'].mean()))

3. 用众数填充

  与均值类似,可以用未缺失数据的众数来填充缺失值

  data['灰度分'] = data['灰度分'].fillna(data['灰度分'].mode()))

4. 用上下数据进行填充

   用前一个数据进行填充

   data['灰度分'] = data['灰度分'].fillna(method='pad')

   用后一个数据进行填充

    data['灰度分'] = data['灰度分'].fillna(method='bfill')

5. 用插值法填充

   data['灰度分'] = data['灰度分'].interpolate()

6. 用KNN进行填充

    from fancyimpute import BiScaler, KNN, NuclearNormMinimization, SoftImpute

    dataset = KNN(k=3).complete(dataset)

参考: pandas numpy处理缺失值,none与nan比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**星光*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值