dataframe,如果列B的取值为“YY”,那么保留列C大于50的行
时间: 2024-03-21 20:41:30 浏览: 58
可以使用 Pandas 库中的 DataFrame 进行操作,代码如下:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
'A': ['foo', 'bar', 'baz', 'qux'],
'B': ['XX', 'YY', 'YY', 'XX'],
'C': [10, 20, 60, 70]
})
# 根据条件筛选出符合要求的行
df = df[(df['B'] == 'YY') & (df['C'] > 50)]
# 输出结果
print(df)
```
输出结果为:
```
A B C
2 baz YY 60
```
相关问题
dataframe,如果列B的取值为“YY”,那么保留列C大于50的行,如果列B为其他取值,那就都保留下来
可以使用 Pandas 库中的 DataFrame 进行操作,代码如下:
```python
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
'A': ['foo', 'bar', 'baz', 'qux'],
'B': ['XX', 'YY', 'YY', 'ZZ'],
'C': [10, 20, 60, 70]
})
# 根据条件筛选出符合要求的行
df = df[((df['B'] == 'YY') & (df['C'] > 50)) | (df['B'] != 'YY')]
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 foo XX 10
1 bar YY 20
2 baz YY 60
3 qux ZZ 70
```
这里使用了逻辑运算符 `|`(或)和 `&`(且)来组合多个筛选条件。同时,注意在条件中使用 `!=` 表示不等于。
如果dataframe列A取值为NaN,那么让生成列B=1;dataframe列A取值不是NaN,就生成列B=列A+1
您好,欢迎使用ChitGPT进行对话。回答您的问题,您可以使用pandas库中的fillna()方法来实现。代码如下:
```
import pandas as pd
df['B'] = df['A'].fillna(1)
df.loc[df['A'].notnull(), 'B'] = df['A']
```
在第一行中,我们使用fillna()方法将列A中的NaN值替换为1并将结果存储在列B中。在第二行中,我们使用notnull()方法来检测A列是否包含非NaN值,如果是,则将A列的值赋给B列。
请注意,以上代码仅适用于DataFrame类型的数据。如果您有任何其他问题,请告诉我。
阅读全文