(我是Python新手,对于我犯的任何错误感到抱歉,希望你能理解我)
我搜索了一种在 Python 中将行插入到 Pandas DataFrame 中的方法,我发现了这个:
add one row in a pandas.DataFrame
我已经使用了fred在该主题的接受答案中提供的代码,但是该代码覆盖了我的行: 我的代码(在某些条件下为每列插入一个值为“-1”的行):
df.loc[i+1] = [-1 for n in range(len(df.columns))]
如何使代码插入一行而不覆盖它? 例如,如果我有一个 50 行的 DataFrame,请在位置 25 插入一行(仅作为示例),并使 DataFrame 有 51 行(第 25 行是额外的新行)。
希望你能理解我的问题。 (抱歉有任何英语错误)
谢谢。
更新:
有人建议这样做:
Is it possible to insert a row at an arbitrary position in a dataframe using pandas?
试过了,没用。事实上,它什么也没做,没有添加任何行。
line = pd.DataFrame({[-1 for n in range(len(df.columns))]}, index=[i+1])
df = pd.concat([ df.ix[:i], line, df.ix[i+1:]]).reset_index(drop=True)
还有其他想法吗?
最佳答案
对于一个小的DataFrame
,如果您想在位置1
处插入一行:
df = pd.DataFrame({'a':[0,1],'b':[2,3]})
df1 = pd.DataFrame([4,5]).T
pd.concat([df[:1], df1.rename(columns=dict(zip(df1.columns,df.columns))), df[1:]])
#Out[46]:
# a b
#0 0 2
#0 4 5
#1 1 3
关于python - 在 Python Pandas DataFrame 中插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34352197/