我试图附加到Panda表,但是这样做时,会以某种方式创建新列和一些行。
我不知道它来自哪里。我同时使用了concat
和append
函数,并在其他文章中看到了示例,但是对我来说不起作用。
这就是发生的情况:
让我们说一个例子,我有df1
:
"x" "y" "id"
1 2 1
1 3 1
...
和df2
:
"x" "y" "id"
5 6 2
4 7 2
...
我想要一个像这样的表
"x" "y" "id"
1 2 1
1 3 1
...
5 6 2
4 7 2
...
当我使用时:
df=df.append(df2)
我以某种方式得到这个:
0 "x" "y" "id"
"x" NaN NaN NaN
"y" NaN NaN NaN
"id" NaN NaN NaN
NaN 1 2 1
NaN 1 3 1
...
NaN 5 6 2
NaN 4 7 2
...
有人知道为什么吗? 我的代码如下:
columns = ["x", "y", "t", "id", "id2"]
df_allTrajectories=pd.DataFrame(columns)
for z in range(trajectory_amount):
....does sth
f = open("...")
with open("...") as f1:
data3 = f1.read()
TESTDATA = StringIO(data3)
df = pd.read_table(TESTDATA, sep=" ")
df.columns = ["x", "y", "id", "id2"]
df.insert(loc=2, column='t', value=0)
df.loc[:, 't'] = 0
df.loc[:, 'id2'] = 0
df.loc[:, 'id'] = z
df.columns = ["x", "y", "t", "id", "id2"]
df['id2'] =1
df['id2'] = df.groupby('id')['id2'].cumsum().add(-1)
df['t'] =1
df['t'] = df.groupby('id')['t'].cumsum().add(-1)
df_allTrajectories = df_allTrajectories.append(df)
因此,我将df
z
次递归追加到df_allTrajectories
。他们都有5列,但是不知何故我得到了类似上面示例中的错误输出。有人知道为什么吗?
我还尝试通过以下方式删除此新的第一列
df_allTrajectories.drop(df_allTrajectories.columns[[0]], axis=1)
但没有任何作用。