pandas.core.frame.DataFrame.fillna() argument after ** must be a mapping, not numpy.ndarra
时间: 2024-06-07 07:10:41 浏览: 160
这个错误信息通常出现在使用 Pandas 的 DataFrame.fillna() 方法时传入了不正确的参数类型。根据错误信息可以看出,它期望传入的参数是一个映射(mapping),但实际传入的是一个 NumPy 数组(numpy.ndarray)。
请检查一下你的代码,看看是否在使用 fillna() 方法时传入了不正确的参数类型。可能需要将传入的参数转换成一个字典(dictionary),或者使用其他适当的数据类型来传递所需的值。
相关问题
如何将pandas.core.frame.DataFrame转化成numpy.ndarray
可以使用`values`属性将`DataFrame`转换为`ndarray`,示例如下:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
arr = df.values
print(arr)
# 输出:
# array([[1, 4],
# [2, 5],
# [3, 6]], dtype=int64)
```
注意,转换后的`ndarray`会失去列名等数据结构信息,只保留数值信息。如果需要保留列名等信息,可以使用`to_numpy`方法,示例如下:
```python
import pandas as pd
import numpy as np
df = pd.DataFrame({'col1': [1, 2, 3], 'col2': [4, 5, 6]})
arr = df.to_numpy()
print(arr)
# 输出:
# array([[1, 4],
# [2, 5],
# [3, 6]], dtype=int64)
```
这样转换后的`ndarray`会保留列名等信息,但是这个方法要求pandas版本在0.24或以上。
pandas.core.frame.DataFrame转化为numpy
可以使用`DataFrame.values`方法将`pandas.core.frame.DataFrame`转换为`numpy.ndarray`,如下所示:
```python
import pandas as pd
import numpy as np
# 创建DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 转换为numpy.ndarray
arr = df.values
print(arr)
```
输出结果:
```
array([[1, 4],
[2, 5],
[3, 6]])
```
注意:转换后的数据类型为`numpy.ndarray`,不再是`pandas.core.frame.DataFrame`。
阅读全文