如何在python中将具有特定值的行添加到数据帧

如何在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=

假设我有下面的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=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(…)