red*_*bia 24 python join append pandas
我有两个pandas数据帧.
noclickDF = DataFrame([[0,123,321],[0,1543,432]], columns=['click', 'id','location'])
clickDF = DataFrame([[1,123,421],[1,1543,436]], columns=['click', 'location','id'])
Run Code Online (Sandbox Code Playgroud)
我只是想加入,以便最终的DF看起来像:
click | id | location
0 123 321
0 1543 432
1 421 123
1 436 1543
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,两个原始DF的列名相同,但顺序不同.列中也没有连接.
unu*_*tbu 41
你也可以使用pd.concat:
In [36]: pd.concat([noclickDF, clickDF], ignore_index=True)
Out[36]:
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
Run Code Online (Sandbox Code Playgroud)
在引擎盖下,DataFrame.append打电话pd.concat.
DataFrame.append具有处理各种类型输入的代码,例如Series,tuples,lists和dicts.如果你传递一个DataFrame,它会直接传递给pd.concat,所以使用pd.concat更直接.
您可以为此使用 append
df = noclickDF.append(clickDF)
print df
click id location
0 0 123 321
1 0 1543 432
0 1 421 123
1 1 436 1543
Run Code Online (Sandbox Code Playgroud)
如果您需要,您可以通过以下方式重置索引
df.reset_index(drop=True)
print df
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
Run Code Online (Sandbox Code Playgroud)
小智 6
对于未来的用户(有时> pandas 0.23.0):
您可能还需要添加sort = True以在非连接轴尚未对齐时对其进行排序(即保留OP所需的连接行为).我使用上面提供的代码并收到警告,请参阅Python Pandas用户警告.下面的代码有效并且不会发出警告.
In [36]: pd.concat([noclickDF, clickDF], ignore_index=True, sort=True)
Out[36]:
click id location
0 0 123 321
1 0 1543 432
2 1 421 123
3 1 436 1543
Run Code Online (Sandbox Code Playgroud)