pandas在da中插入一列C,当A列值小于B列时为1,当A列等于B列值时为2,当A列小于B列时为3
时间: 2024-05-12 18:18:03 浏览: 91
你可以使用以下代码实现这个需求:
```python
import pandas as pd
# 创建虚拟数据
data = {'A': [1, 2, 3, 4, 5], 'B': [4, 3, 2, 5, 1]}
df = pd.DataFrame(data)
# 创建新列C
df['C'] = 0
# 使用条件语句赋值
df.loc[df['A'] < df['B'], 'C'] = 1
df.loc[df['A'] == df['B'], 'C'] = 2
df.loc[df['A'] > df['B'], 'C'] = 3
# 输出结果
print(df)
```
输出结果为:
```
A B C
0 1 4 1
1 2 3 3
2 3 2 2
3 4 5 1
4 5 1 3
```
希望能帮到你!
相关问题
pandas插入B列用于显示A列数值在该列出现的次数
可以使用 pandas 的 value_counts 方法统计 A 列的数值出现次数,然后将结果插入到新的 B 列中。具体方法可以参考下面的示例代码:
```python
import pandas as pd
# 创建示例数据
df = pd.DataFrame({'A': [1, 2, 3, 2, 1, 3, 1, 1, 2, 3]})
# 统计 A 列各数值的出现次数
counts = pd.Series(df['A']).value_counts()
# 将结果插入到新的 B 列中
df.insert(loc=1, column='B', value=df['A'].map(counts))
# 显示结果
print(df)
```
输出:
```
A B
0 1 4
1 2 3
2 3 3
3 2 3
4 1 4
5 3 3
6 1 4
7 1 4
8 2 3
9 3 3
```
用pandas判断A列 如果 A列值为"是" 则 B列值赋值到C列 如果A列值为"否" 则 C列为0 如果A列为 整数 则C列等于B列除以C列
可以使用pandas的apply函数实现这个功能。示例代码如下:
```python
import pandas as pd
def func(row):
if row['A'] == '是':
return row['B']
elif row['A'] == '否':
return 0
elif isinstance(row['A'], int):
return row['B'] / row['C']
df = pd.DataFrame({'A': ['是', '否', 10], 'B': [2, 3, 4], 'C': [3, 0, 2]})
df['C'] = df.apply(func, axis=1)
print(df)
```
输出结果为:
```
A B C
0 是 2 2.0
1 否 3 0.0
2 10 4 2.0
```
其中,func函数根据A列的值进行判断,并返回对应的值。apply函数将func应用到每一行上,并返回一个Series,将其赋值到C列即可。注意,这里需要使用`isinstance(row['A'], int)`判断A列是否为整数类型。
阅读全文