我在pandas中有一个数据框如下:
Type Rand Arrival
0 0.3 4
2 0.64 3
1 0.98 12
现在,我想在其中添加一个新列,即每行中的列表:
Type Rand Arrival Park
0 0.3 4 [5,10,15,20]
2 0.64 3 [4,9,14,19]
1 0.98 12 [6,11,16,21]
我想基于' Rand'做到这一点。列使用以下命令将其与某些值进行比较:
df.loc[ (df.Rand <= 0.4) , 'Park' ] = [5,10,15,20]
df.loc[ (df.Rand > 0.4) & (df.Rand <= 0.8) , 'Park' ] = [4,9,14,19]
df.loc[ (df.Rand > 0.8) , 'Park' ] = [6,11,16,21]
但是我收到以下错误:
Must have equal len keys and value when setting with an iterable.
请你告诉我热门来解决这个问题吗?
答案 0 :(得分:2)
>>> df.loc[df.Rand <= 0.4, 'Park'] = pd.Series([[5, 10, 15, 20]], index=df.index)
>>> df.loc[(df.Rand > 0.4) & (df.Rand <= 0.8), 'Park'] = pd.Series([[4,9,14,19]], index=df.index)
>>> df.loc[(df.Rand > 0.8), 'Park'] = pd.Series([[6,11,16,21]], index=df.index)
>>> df
Type Rand Arrival Park
0 0 0.30 4 [5, 10, 15, 20]
1 2 0.64 3 [4, 9, 14, 19]
2 1 0.98 12 [6, 11, 16, 21]
受[1]
的启发答案 1 :(得分:1)
mysql_connect