DataFrame求其非0最小值
时间: 2023-07-25 18:26:00 浏览: 374
可以使用pandas库中的`replace()`方法将DataFrame中的0元素替换为NaN,然后使用`min()`方法求取非0最小值。具体的代码如下:
```python
import pandas as pd
# 构造一个示例DataFrame
df = pd.DataFrame({'A': [0, 2, 0], 'B': [3, 0, 4], 'C': [0, 5, 6]})
# 将DataFrame中的0元素替换为NaN
df = df.replace(0, pd.np.nan)
# 求取非0最小值
min_val = df.min().min()
# 输出结果
print(min_val)
```
在这个示例中,我们首先构造了一个DataFrame对象df,然后使用`replace()`方法将其中的0元素替换为NaN,接着使用`min()`方法求取非0最小值。需要注意的是,由于DataFrame中有多列,所以需要在第一次`min()`方法后再使用一次`min()`方法来求取所有列的最小值。最后输出结果即可。
相关问题
dataframe计算所有列的最小值
可以使用 pandas 中的 `DataFrame.min()` 方法来计算 DataFrame 中所有列的最小值。该方法会返回一个 Series,其中每个元素为对应列的最小值。
示例代码如下:
```python
import pandas as pd
# 创建一个 DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 计算所有列的最小值
min_values = df.min()
print(min_values)
```
输出结果为:
```
A 1
B 4
C 7
dtype: int64
```
可以看到,`min()` 方法返回了一个 Series,其中包含了每一列的最小值。
dataframe用当前列的最小值减去100填充NaN
可以使用 pandas 中的 fillna() 方法来实现。假设当前列名为 column_name,可以使用以下代码:
```python
import pandas as pd
# 读取数据到 DataFrame
df = pd.read_csv('data.csv')
# 用最小值减去 100 填充 NaN
min_value = df['column_name'].min()
df['column_name'].fillna(min_value - 100, inplace=True)
```
其中,`fillna()` 方法的第一个参数是填充的值,这里使用最小值减去 100。`inplace=True` 表示在原 DataFrame 上进行操作,否则需要重新赋值给一个新的 DataFrame。
阅读全文