assign的用途是增加新的一列
df1['B']=list('abc')
df1
A | B | |
---|---|---|
1 | 1 | a |
2 | 2 | b |
3 | 3 | c |
df1.assign(C=pd.Series(list('def')))
A | B | C | |
---|---|---|---|
1 | 1 | a | e |
2 | 2 | b | f |
3 | 3 | c | NaN |
没有指定Series的index默认是从0开始的。
使用assign添加列时候,索引是对齐的,如果说添加列和原DataFrame不一致的时候就会出现NAN的情况。
所以为了不出现NAN,就要指定索引和原DataFrame一致。
df1.assign(C=pd.Series(list('def'),index=list(range(1,4))))
A | B | C | |
---|---|---|---|
1 | 1 | a | d |
2 | 2 | b | e |
3 | 3 | c | f |