我的 Dataframe 如下:
data = { "a": [420, 380, 390], "b": [50, 40, 45] } df = pd.DataFrame(data)
我想在这个 Dataframe 的末尾添加新的项目,并删除第一个项目。我的意思是,每次添加的内容将是3。新增项目
{"a": 300, b: 88}
最后一种情况是:
data = { "a": [380, 390, 300], "b": [40, 45, 88] }
有什么捷径吗?
72qzrwbm1#
使用concat:
concat
df = pd.concat([df.iloc[1:], pd.DataFrame.from_dict({0: d}, orient='index')], ignore_index=True)
输出量:
a b 0 380 40 1 390 45 2 300 88
bvjveswy2#
您可以使用pd.concat,因为append正在被弃用。
pd.concat
append
dct = {"a": 300, "b": 88} df_new = pd.concat([df, pd.Series(dct).to_frame().T] ).iloc[1:, :].reset_index(drop=True) print(df_new) # If maybe the values of 'dict' have multiple items. # dct = {"a": [300, 400], "b": [88, 98]} # df_new = pd.concat([df, pd.DataFrame(dct)] # ).iloc[1:, :].reset_index(drop=True)
您可以使用pandas.DataFrame.append向df添加新行,然后删除第一行基数index。(如果必要,最后使用reset_index)
pandas.DataFrame.append
df
index
reset_index
dct = {"a": 300, "b": 88} df_new = df.append(dct, ignore_index=True).drop(0, axis=0).reset_index(drop=True) print(df_new)
ezykj2lf3#
您可以按df.append()将新行追加到现有 Dataframe 。
df.append()
new_row = {"a": 300, "b": 88} df2 = df.append(new_row, ignore_index=True)
(请注意,append适用于Dataframe和dict对象,但后者需要ignore_index=True。您可以通过以下方法之一从 Dataframe 中删除第一行:1.使用iloc选择
Dataframe
dict
ignore_index=True
iloc
df3 = df2.iloc[1:, :]
这会分割除第一列以外的所有列,以及所有栏。1.使用drop删除第一行。
df3 = df2.drop(df.index[0], axis=0, inplace=False)
或者,您可以使用inplace=True就地修改df2,在这种情况下将返回None。
inplace=True
df2
None
3条答案
按热度按时间72qzrwbm1#
使用
concat
:输出量:
bvjveswy2#
您可以使用
pd.concat
,因为append
正在被弃用。您可以使用
pandas.DataFrame.append
向df
添加新行,然后删除第一行基数index
。(如果必要,最后使用reset_index
)输出量:
ezykj2lf3#
您可以按
df.append()
将新行追加到现有 Dataframe 。(请注意,
append
适用于Dataframe
和dict
对象,但后者需要ignore_index=True
。您可以通过以下方法之一从 Dataframe 中删除第一行:
1.使用
iloc
选择这会分割除第一列以外的所有列,以及所有栏。
1.使用drop删除第一行。
或者,您可以使用
inplace=True
就地修改df2
,在这种情况下将返回None
。