我有一个数据框。
df=pd.DataFrame({'month':np.arange(1,8)})
所以,我想使用'月'列
添加列if 'month'=1,2,3 the elements = 'term1'
'month'=4,5 the elements = 'term2'
'month'=6,7 the elements = 'term3'
我想得到以下结果
month term
0 1 term1
1 2 term1
2 3 term1
3 4 term2
4 5 term2
5 6 term3
6 7 term3
我怎样才能得到这个结果? 也许我们可以轻松简单地获得这个结果....
答案 0 :(得分:1)
使用numpy.where
和Series.isin()
方法可以是其中一个选项:
import numpy as np
import pandas as pd
df["term"] = np.where(df.month.isin([1,2,3]), "term1", \
np.where(df.month.isin([4,5]), "term2", "term3"))
df
# month term
#0 1 term1
#1 2 term1
#2 3 term1
#3 4 term2
#4 5 term2
#5 6 term3
#6 7 term3
答案 1 :(得分:1)
我会通过一个dict的声明方式,简单易读,易于应用。如果替换条件变大或取决于其他输入,则可以以编程方式生成替换条件字典:
conditions = {1:'term1', 2:'term1', 3:'term1',
4:'term2', 5:'term2',
6:'term3', 7:'term3'}
df['term'] = df.replace(conditions)
df
month term
0 1 term1
1 2 term1
2 3 term1
3 4 term2
4 5 term2
5 6 term3
6 7 term3