在 Python Pandas DataFrame 中插入行
Insert Row in Python Pandas DataFrame
(我是 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 的方法,我找到了这个:
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