pandas drop inf
时间: 2023-09-02 16:09:02 浏览: 45
To drop rows with infinite or NaN values in pandas, you can use the `dropna()` method with the `inplace=True` parameter. Here's an example:
```python
import pandas as pd
import numpy as np
# create a dataframe with infinite and NaN values
df = pd.DataFrame({'A': [1, 2, np.inf, 4, np.nan],
'B': [5, np.nan, 7, 8, 9]})
# drop rows with infinite and NaN values
df.dropna(inplace=True)
# print the resulting dataframe
print(df)
```
This will output:
```
A B
0 1.0 5.0
1 2.0 NaN
3 4.0 8.0
```
As you can see, the row with infinite and NaN values has been dropped from the dataframe.
相关问题
pandas删除异常值
要删除Pandas中的异常值,可以使用以下方法:
1. 使用条件过滤方法:使用boolean indexing或where()方法过滤掉异常值。
例如,如果要删除Series中小于0或大于100的值,可以使用以下代码:
```
import pandas as pd
s = pd.Series([23, 45, -12, 67, 100, 101, 34, -56])
s = s[(s >= 0) & (s <= 100)]
print(s)
```
2. 使用drop()方法:使用drop()方法删除包含异常值的行或列。
例如,如果要删除DataFrame中包含NaN或无限值的行,可以使用以下代码:
```
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, np.nan, 4], 'B': [5, 6, 7, np.inf]})
df = df.dropna()
print(df)
```
这将删除包含NaN或无限值的行。
注意:在删除异常值之前,请确保您已经仔细检查了数据,并确定哪些值是异常值。
import numpy as np import pandas as pd import os os.chdir('D:\Download') F_ = pd.read_excel('FS_Comscfd.xlsx') F = F_.iloc[2:] F = F.fillna(0) F['Tax'] = F['C001021000'] - F['C001012000'] F['LTax'] = F['Tax'].shift(1) F['chtx'] = (F['Tax'] - F['LTax'])/ F['LTax'] F = F[~F.isin([np.nan, np.inf, -np.inf]).any(1)] # F = F.dropna() F = F[['Stkcd', 'Accper', 'chtx']].reset_index(drop = True) F.to_csv("chtx_treated.csv",encoding='utf_8_sig',index = False) F
这段代码看起来是在读取一个名为 "FS_Comscfd.xlsx" 的 Excel 文件,并进行一系列的数据处理操作,最后将处理后的结果保存为 "chtx_treated.csv" 文件。
首先,代码导入了一些必要的库,如 numpy、pandas 和 os。然后,使用 `os.chdir()` 将当前工作目录更改为 "D:\Download"。
接下来,使用 `pd.read_excel()` 读取名为 "FS_Comscfd.xlsx" 的 Excel 文件,并将其存储在变量 F_ 中。
然后,进行一些数据处理操作。首先从第三行开始选择数据,并使用 `fillna(0)` 将缺失值填充为0。接着,计算 'Tax' 列的值,该列是 'C001021000' 列减去 'C001012000' 列的结果。然后创建 'LTax' 列,该列是 'Tax' 列向上移动一行。接着计算 'chtx' 列,该列是 'Tax' 列减去 'LTax' 列除以 'LTax' 列的结果。最后,使用 `~F.isin([np.nan, np.inf, -np.inf]).any(1)` 过滤掉包含 NaN、正无穷或负无穷的行。
最后,将筛选后的结果保留 'Stkcd'、'Accper' 和 'chtx' 列,并将结果保存为名为 "chtx_treated.csv" 的 CSV 文件。
如果你有更多的问题,请随时提问。