首页 > 解决方案 > 在所有列中的特定值的熊猫数据框末尾添加新行

问题描述

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

 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 替换为 'Target,这样最终的数据框将如下所示:

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')

标签: pythonpandasdataframe

解决方案


使用放大设置,必要的默认值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

推荐阅读