pandas:dataframe在指定位置插入一行数据

直接在末尾添加一行数据

思路:利用df.apped()方法即可

实例:

data = {
    'name':['li', 'gg', 'zz'],
    'age':[20, 21, 22],
    'height':[170, 178, 174]}
df = pd.DataFrame(data)
print('df:')
print(df)
df_new = df.append({'name':'yy', 'age':25, 'height':168}, ignore_index=True)
print('df_new:')
print(df_new)

结果:

df:
  name  age  height
0   li   20     170
1   gg   21     178
2   zz   22     174
df_new:
  name  age  height
0   li   20     170
1   gg   21     178
2   zz   22     174
3   yy   25     168

在任意指定位置插入一行数据

思路:先将原始的df在第i行切割,分成两个部分df1和df2。然后再利用pd.concat()[df1, df_add, df2]合并成一个df。

实例:

def insert(df, i, df_add):
    # 指定第i行插入一行数据
    df1 = df.iloc[:i, :]
    df2 = df.iloc[i:, :]
    df_new = pd.concat([df1, df_add, df2], ignore_index=True)
    return df_new

data = {
    'name':['li', 'gg', 'zz'],
    'age':[20, 21, 22],
    'height':[170, 178, 174]}
df = pd.DataFrame(data)
print('df:')
print(df)
df_add = pd.DataFrame({'name':['yy'], 'age':[25], 'height':[168]})
# 在第2行插入一条新的数据
df_new = insert(df, 1, df_add)
print('df_new:')
print(df_new)

结果:

df:
  name  age  height
0   li   20     170
1   gg   21     178
2   zz   22     174
df_new:
  name  age  height
0   li   20     170
1   yy   25     168
2   gg   21     178
3   zz   22     174

你可能感兴趣的:(python)