Vin*_*ini 2 python filtering numpy dataframe pandas
我正在努力解决这个问题.我有一个像DataFrame:
import pandas as pd
data = {'A': ['red', 'green', 'blue', 'green', 'yellow', 'blue'],
'B': [1, 2, 1, 1, 2, 1]}
frame = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)
我想根据"A"列中的多个条件创建一个新列.例如,如果'A'是红色或蓝色,我希望这个新列等于10; 如果'A'是绿色,则等于20,依此类推.
问题是,我想我可以使用嵌套np.where,但我确实关心这里的可读性.
您可以创建一个字典,将颜色定义为数字映射,然后使用mapA列上的方法:
color_to_num = {'red': 10, 'blue': 10, 'green': 20, 'yellow': 30}
frame['new'] = frame.A.map(color_to_num)
frame
# A B new
#0 red 1 10
#1 green 2 20
#2 blue 1 10
#3 green 1 20
#4 yellow 2 30
#5 blue 1 10
Run Code Online (Sandbox Code Playgroud)
或使用replace方法:
frame['new'] = frame.A.replace(color_to_num)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |