如何在python中将具有特定值的行添加到数据帧
假设我有下面的df,由x值和它们的概率组成,从x=19开始,以x=64结束如何在python中将具有特定值的行添加到数据帧,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,假设我有下面的df,由x值和它们的概率组成,从x=19开始,以x=64结束 x probability 0 19.0 1.000000 1 20.0 1.000000 2 21.0 1.000000 3 22.0 1.000000 ... 40 60.0 0.000000 41 62.0 0.500000 42 63.0 1.000000 43 64.0 0.000000 我想做的是添加从x=65到x=
x probability
0 19.0 1.000000
1 20.0 1.000000
2 21.0 1.000000
3 22.0 1.000000
...
40 60.0 0.000000
41 62.0 0.500000
42 63.0 1.000000
43 64.0 0.000000
我想做的是添加从x=65到x=100的行,并使它们的概率都等于0,如下所示:
x probability
0 19.0 1.000000
1 20.0 1.000000
2 21.0 1.000000
3 22.0 1.000000
4 23.0 1.000000
...
43 64.0 0.000000
44 65.0 0.000000
43 66.0 0.000000
44 67.0 0.000000
...
73 97.0 0.000000
78 98.0 0.000000
79 99.0 0.000000
80 100.0 0.000000
同样,我只想以0的概率将连续的x值从65添加到100。我不太确定如何添加这样的行,因此非常感谢您的帮助。谢谢
注意:此问题与类似,但我希望x列中的值每次增加1,而不是保持不变。我们可以执行
reindex
df_new=df.set_index('x').reindex(np.arange(df.x.min(),100+1),method='ffill').reset_index()
我们可以做
reindex
df_new=df.set_index('x').reindex(np.arange(df.x.min(),100+1),method='ffill').reset_index()
只需创建第二个数据帧并用
df.append()追加
您的数据帧可以用
df = pd.DataFrame({'x':np.arange(19, 65)})
df['probability'] = 1
创建第二个数据帧并将其附加到第一个数据帧,如
max_x = df['x'].max()
df_append = pd.DataFrame({'x':np.arange(max_x, 101)})
df_append['probability'] = 0
df_res = df.append(df_append)
只需创建第二个数据帧并用df.append()追加
您的数据帧可以用
df = pd.DataFrame({'x':np.arange(19, 65)})
df['probability'] = 1
创建第二个数据帧并将其附加到第一个数据帧,如
max_x = df['x'].max()
df_append = pd.DataFrame({'x':np.arange(max_x, 101)})
df_append['probability'] = 0
df_res = df.append(df_append)
您可以使用for循环生成一个列表,并使用df.append(…)
您可以使用for循环生成一个列表,并使用df.append(…)