在pandas数据框末尾添加新行,并在所有列中添加特定值

时间:2018-12-19 13:25:29

标签: python pandas dataframe

我有一个看起来像这样的数据框:

 Col1     Col2  .....    Col48
 078      abc            0.99
 097      def            0.91
 027      xyz            0.66
 065      90             0.76

我想在最后一行之后添加所有值为'0'的新行。因此,新的df应该如下所示:

Col1     Col2  .....    Col48
 078      abc            0.99
 097      def            0.91
 027      xyz            0.66
 065      bcd             0.76
 0         0             0

此后,我想将Col2值从0替换为“目标”,这样最终的数据帧将如下所示:

Col1     Col2  .....    Col48
 078      abc            0.99
 097      def            0.91
 027      xyz            0.66
 065      bcd             0.76
 0        target             0

代码:

 df.loc[len(df)] = 0
 df['Col2'] = df['Col2'].astype(str)
 df['Col2'].str.replace('0','target')

1 个答案:

答案 0 :(得分:1)

使用setting with enlargement,默认为RangeIndex

df.loc[len(df)] = 0
print (df)
   Col1 Col2  Col48
0    78  abc   0.99
1    97  def   0.91
2    27  xyz   0.66
3    65   90   0.76
4     0    0   0.00

另一种解决方案是一起创建一列DataFrameconcat

df1 = pd.DataFrame(np.repeat(0, len(df.columns))[None, :], 
                  columns=df.columns,
                  index=[10])

df = pd.concat([df, df1])
print (df)
    Col1 Col2  Col48
0     78  abc   0.99
1     97  def   0.91
2     27  xyz   0.66
3     65   90   0.76
10     0    0   0.00