[问题] 关于 assign series to dataframe

楼主: os653   2018-11-13 19:58:45
>>> df = pd.DataFrame([[1,2],[3,4],[5,6]])
>>> df
0 1
0 1 2
1 3 4
2 5 6
>>> selected_df = df.loc[[0,2]]
>>> selected_df
0 1
0 1 2
2 5 6
>>> selected_df.loc[:, 'assign_by_series'] = pd.Series([100, 200])
>>> selected_df
0 1 assign_by_series
0 1 2 100.0
2 5 6 NaN
>>> selected_df.loc[:, 'assign_by_list'] = [100, 200]
>>> selected_df
0 1 assign_by_series assign_by_list
0 1 2 100.0 100
2 5 6 NaN 200
示意如上
assign series 时,资料被依照 index 存了
又因为 series 只有两笔资料,所以 selected_df 的第三笔变成 NaN
而 list 不会有这问题
请问这是正常的吗?因为蛮容易不小心手残写错

Links booklink

Contact Us: admin [ a t ] ucptt.com