如何在python的dataframe中,对多列进行综合判断。如果A列为"主营业务收入"和B列为"内部交易",则C列为"内部交易",否则为空白
时间: 2023-07-21 13:09:40 浏览: 37
您可以使用条件判断和逻辑运算来实现对多列进行综合判断。在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中,列A和列B和列C的数据画出折线图
可以使用pandas和matplotlib库来实现:
```python
import pandas as pd
import matplotlib.pyplot as plt
# 构造数据
data = {'A': [1, 2, 3, 4, 5], 'B': [2, 4, 6, 8, 10], 'C': [3, 6, 9, 12, 15]}
df = pd.DataFrame(data)
# 绘制折线图
df.plot(kind='line')
# 显示图形
plt.show()
```
其中,`kind='line'`表示绘制折线图,`df.plot()`默认会对所有列进行绘制,因此可以直接调用。如果只需要绘制其中的某几列,可以使用`df[['A', 'B', 'C']].plot(kind='line')`来指定列。
在python中对DataFrame列属性进行重复元素的去除
可以使用pandas库中的drop_duplicates()方法对DataFrame列属性进行重复元素的去除。具体实现如下:
```python
import pandas as pd
# 创建DataFrame示例数据
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8]})
# 对列属性A进行重复元素的去除
df['A'] = df['A'].drop_duplicates()
# 输出去除重复元素后的DataFrame
print(df)
```
输出结果为:
```
A B C
0 foo one 1
1 bar one 2
2 NaN two 3
3 NaN three 4
4 NaN two 5
5 NaN two 6
6 NaN one 7
7 NaN three 8
```
可以看到,使用drop_duplicates()方法对列属性A进行去重后,DataFrame中只保留了一次出现的元素,并将其他的重复元素删除。