我想追加2个数据帧:
data1:
a
1 a
2 b
3 c
4 d
5 e
data2:
b
1 f
2 g
3 h
4 i
5 j
output:
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
目前我正在使用:
all_data= data1.append(data2, ignore_index=True)
这给我的结果如下:
a b
1 a
2 b
3 c
4 d
5 e
6 f
7 g
8 h
9 i
10 j
即。在不同的列中。 我怎样才能将它们放在同一列中?
还尝试将数据帧转换为列表,然后尝试将其追加。但它给了我错误:
TypeError: append() takes no keyword arguments
此外,还有其他功能可以从字符串的数据框中删除重复项吗? drop_duplicates()函数在我的情况下不起作用。数据仍有重复数据。
答案 0 :(得分:2)
您需要更改一个列名称,因此append
可以检测您要执行的操作:
data2.columns = ["a"]
或
data1.columns = ["b"]
然后,在使用data2.columns = ["a"]
后:
all_data = data1.append(data2, ignore_index=True)
all_data
a
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j
在这里,您的列以data1的列名命名,如果需要,可以重命名:
all_data.columns = ["Foo"]
答案 1 :(得分:1)
merge
或concat
处理密钥。在这种情况下,没有共同的列。但是,为什么不使用numpy append
并创建数据框?
In [68]: pd.DataFrame(pd.np.append(data1.values, data2.values), columns=['A'])
Out[68]:
A
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j
答案 2 :(得分:0)
df1.columns = ['b']
Out[78]:
b
0 a
1 b
2 c
3 d
4 e
pd.concat([df1 , df2] , ignore_index=True)
Out[80]:
b
0 a
1 b
2 c
3 d
4 e
5 f
6 g
7 h
8 i
9 j