python 如何根据某列值大小关系,赋予新列
时间: 2023-08-11 15:29:18 浏览: 47
在Python中,可以使用pandas库将某列值的大小关系赋予新列。下面给出示例代码:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [11, 22, 33, 44, 55]})
# 根据列B的值的大小关系,给列C赋值
df['C'] = pd.cut(df['B'], bins=[0, 20, 40, 60], labels=['small', 'medium', 'large'])
print(df)
```
输出结果:
```
A B C
0 1 11 small
1 2 22 medium
2 3 33 medium
3 4 44 medium
4 5 55 large
```
在上述代码中,首先创建了一个DataFrame,包含两列,其中列B的值是需要根据它来赋值的。然后,在新建一列C时,使用了`cut()`函数,它可以将一列数值根据一个或多个分割点进行切割,分割后的区间可以自定义标签。在这里,我们使用了`cut()`函数将列B的值根据分割点[0, 20, 40, 60]进行切割,将其分为三个区间,分别为'small'、'medium'、'large',并将切割后的值赋给新的列C。
相关问题
python 如何根据某列值,赋予新列
在Python中,可以使用pandas库将某列的值赋予新列。下面给出示例代码:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': ['a', 'b', 'c', 'd', 'e']})
# 根据列B的值,给列C赋值
df['C'] = df['B'].map({'a': 'apple', 'b': 'banana', 'c': 'cherry', 'd': 'durian', 'e': 'elderberry'})
print(df)
```
输出结果:
```
A B C
0 1 a apple
1 2 b banana
2 3 c cherry
3 4 d durian
4 5 e elderberry
```
在上述代码中,首先创建了一个DataFrame,包含两列,其中列B的值是需要根据它来赋值的。然后,在新建一列C时,使用了`map()`函数,它可以将一个字典映射到Series或DataFrame中的每个元素上。在这里,我们使用字典将每个B列的值映射为新的C列的值。
python 如何根据某列值是否大于1980,赋予新列1或0
在Python中,可以使用pandas库将某列值是否大于某个数值赋予新列1或0。下面给出示例代码:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1980, 1990, 2000, 2010, 2020]})
# 根据列A的值是否大于1980,给列B赋值
df['B'] = (df['A'] > 1980).astype(int)
print(df)
```
输出结果:
```
A B
0 1980 0
1 1990 1
2 2000 1
3 2010 1
4 2020 1
```
在上述代码中,首先创建了一个DataFrame,包含一列A的值。然后,在新建一列B时,使用了一个条件表达式`(df['A'] > 1980)`,它会返回一个由True和False组成的布尔类型序列,True表示对应位置的A列的值大于1980,False表示小于等于1980。接下来使用`astype(int)`函数将布尔类型序列转换为整型序列,True会转换为1,False会转换为0,并将其赋给新的列B。