如何在python的dataframe中,对多列进行综合判断。如果A列为"主营业务收入"和B列为"内部交易",则C列为"内部交易",否则为空白
时间: 2023-07-21 16:09:40 浏览: 193
您可以使用条件判断和逻辑运算来实现对多列进行综合判断。在Python的DataFrame中,您可以使用`df.loc`或`df['新列名']`来创建一个新列,并根据条件设置相应的值。
下面是一种实现方法:
```python
import pandas as pd
# 创建示例DataFrame
data = {'A': ['主营业务收入', '其他', '主营业务收入'],
'B': ['内部交易', '其他', '其他']}
df = pd.DataFrame(data)
# 根据条件设置新列的值
df.loc[(df['A'] == '主营业务收入') & (df['B'] == '内部交易'), 'C'] = '内部交易'
df['C'].fillna('', inplace=True) # 将空白值填充为''
```
上述代码中,首先创建了一个示例DataFrame `df`,包含列A和B。然后使用`df.loc`选择满足条件`A列为"主营业务收入"和B列为"内部交易"`的行,并将这些行的C列设置为"内部交易"。最后,使用`fillna`方法将C列中的空白值填充为''。
执行上述代码后,您将得到一个新的DataFrame `df`,其中C列根据条件进行了综合判断并设置了相应的值。
相关问题
python重设Dataframe中的户号列为索引列
可以使用`set_index()`方法将DataFrame中的某一列设置为索引列。在你的情况下,如果要将“户号”列设置为索引列,可以这样做:
```python
import pandas as pd
# 假设你的DataFrame名为df,户号列名为'huhao'
df = df.set_index('huhao')
```
这将返回一个新的DataFrame,其中“户号”列已成为索引列。如果你想在原地修改DataFrame,可以将`inplace`参数设置为`True`:
```python
df.set_index('huhao', inplace=True)
```
这将修改原始DataFrame,而不是返回一个新的DataFrame。
python dataframe剔除某列为0的所在行
要剔除Python的DataFrame中某列为0的所在行,可以使用以下步骤:
1. 首先,导入所需要的库,例如``pandas``。可以使用以下代码完成导入:
```python
import pandas as pd
```
2. 接下来,创建一个DataFrame。假设我们有一个包含三列的DataFrame,分别是``col1``、``col2``和``col3``。我们需要剔除``col3``列为0的所在行。可以使用以下代码创建DataFrame:
```python
data = {'col1': [1, 2, 3, 4],
'col2': [5, 6, 7, 8],
'col3': [0, 9, 0, 11]}
df = pd.DataFrame(data)
```
3. 然后,使用条件过滤来剔除``col3``列为0的所在行。可以使用以下代码完成:
```python
df_filtered = df[df['col3'] != 0]
```
4. 最后,打印剔除了``col3``列为0的所在行之后的DataFrame。可以使用以下代码完成:
```python
print(df_filtered)
```
以上代码执行后,将会打印出剔除了``col3``列为0的所在行之后的DataFrame。
希望以上答案能够帮助到您!
阅读全文