追加2个具有相同列的熊猫表会创建另一列吗?

时间:2018-08-21 15:19:27

标签: python pandas recursion

我试图附加到Panda表,但是这样做时,会以某种方式创建新列和一些行。 我不知道它来自哪里。我同时使用了concatappend函数,并在其他文章中看到了示例,但是对我来说不起作用。 这就是发生的情况:

让我们说一个例子,我有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) 

但没有任何作用。

0 个答案:

没有答案