pd删去值为?的行
时间: 2024-01-23 21:03:19 浏览: 71
如果你使用的是 Pandas 库,可以通过 `drop()` 方法来删除 DataFrame 中指定值的行。示例代码如下:
```python
import pandas as pd
import numpy as np
# 创建一个包含指定值的 DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': ['?', 'B', 'C', '?']})
# 将指定值替换为 NaN
df = df.replace('?', np.nan)
# 删除包含指定值的行
df = df.dropna()
# 打印处理后的结果
print(df)
```
输出:
```
A B
1 2 B
2 3 C
```
在上面的示例中,我们首先创建了一个包含指定值的 DataFrame,然后使用 `replace()` 方法将指定值替换为 NaN。接着,使用 `dropna()` 方法删除包含缺失值的行,并将处理后的结果赋值给 `df` 变量。最后打印出了处理后的结果。
相关问题
pd删去缺失值的行
如果你使用的是 Pandas 库,可以通过 `dropna()` 方法来删除缺失值所在的行。示例代码如下:
```python
import pandas as pd
# 创建一个包含缺失值的 DataFrame
df = pd.DataFrame({'A': [1, 2, None, 4], 'B': [5, None, 7, 8]})
# 删除包含缺失值的行
df = df.dropna()
# 打印处理后的结果
print(df)
```
输出:
```
A B
0 1.0 5.0
3 4.0 8.0
```
在上面的示例中,我们首先创建了一个包含缺失值的 DataFrame,然后使用 `dropna()` 方法删除了包含缺失值的行,并将处理后的结果赋值给 `df` 变量。最后打印出了处理后的结果。
用pandas删去csv表中数据,删除依据是当‘HPHM’相同的行中,“KKBH”的值为‘500011015000’的行的“GCSJ”的值小于‘KKBH’的值为‘500011012000’的行的‘GCSJ’的值时,删去所有此‘HPHM’的值所在的行
可以按照以下步骤使用 Pandas 进行删减:
1. 读取 CSV 文件为 Pandas DataFrame。
2. 按照 ‘HPHM’ 分组。
3. 对于每个 ‘HPHM’ 分组,筛选出 ‘KKBH’ 等于 ‘500011015000’ 的行,并记录下 ‘GCSJ’ 的最小值。
4. 筛选出 ‘KKBH’ 等于 ‘500011012000’ 的行,并记录下 ‘GCSJ’ 的最小值。
5. 对于每个 ‘HPHM’ 分组,筛选出 ‘GCSJ’ 小于 ‘500011012000’ 且大于等于 ‘500011015000’ 的行,并记录下所有行的 ‘GCSJ’ 值。
6. 如果 ‘GCSJ’ 小于 ‘500011015000’ 的最小值,则把此 ‘HPHM’ 所有行删去。
7. 将处理好的 DataFrame 写入 CSV 文件。
以下是代码实现:
```python
import pandas as pd
# 读取 CSV 文件为 Pandas DataFrame
df = pd.read_csv('data.csv')
# 按照 ‘HPHM’ 分组
grouped = df.groupby('HPHM')
# 遍历每个 ‘HPHM’ 分组
for _, group in grouped:
# 筛选出 ‘KKBH’ 等于 ‘500011015000’ 的行,并记录下 ‘GCSJ’ 的最小值
kkbh_1 = group.loc[group['KKBH'] == '500011015000', 'GCSJ'].min()
# 筛选出 ‘KKBH’ 等于 ‘500011012000’ 的行,并记录下 ‘GCSJ’ 的最小值
kkbh_2 = group.loc[group['KKBH'] == '500011012000', 'GCSJ'].min()
# 筛选出 ‘GCSJ’ 小于 ‘500011012000’ 且大于等于 ‘500011015000’ 的行,并记录下所有行的 ‘GCSJ’ 值
gcsj_list = group.loc[(group['KKBH'] == '500011015000') & (group['GCSJ'] >= kkbh_1) & (group['GCSJ'] < kkbh_2), 'GCSJ']
# 如果 ‘GCSJ’ 小于 ‘500011015000’ 的最小值,则把此 ‘HPHM’ 所有行删去
if not gcsj_list.empty and gcsj_list.min() < kkbh_1:
df.drop(group.index, inplace=True)
# 将处理好的 DataFrame 写入 CSV 文件
df.to_csv('new_data.csv', index=False)
```
注意:这段代码是基于题目中的描述进行实现的,但具体实现可能需要根据实际情况进行调整。同时,由于数据量较大,上述代码的执行时间可能会比较长。
阅读全文