Python 如何连接具有不等行数和不同列名的数据帧
我试图用不相等的行数和不同的列名连接四个数据帧。在这里,我放置我的代码并输出我得到的东西Python 如何连接具有不等行数和不同列名的数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我试图用不相等的行数和不同的列名连接四个数据帧。在这里,我放置我的代码并输出我得到的东西 import pandas as pd data1 = pd.DataFrame({'Col':[33,44,55,67], 'Col1':[44,55,55,555]}) data2 = pd.DataFrame({'Col2':[33,44], 'Col3':[22,22]}) data3 = pd.DataFrame({'Col4':[33,44,44], 'Col5':[22,22,44]}) d
import pandas as pd
data1 = pd.DataFrame({'Col':[33,44,55,67], 'Col1':[44,55,55,555]})
data2 = pd.DataFrame({'Col2':[33,44], 'Col3':[22,22]})
data3 = pd.DataFrame({'Col4':[33,44,44], 'Col5':[22,22,44]})
data4 = pd.DataFrame({'Col6':[33], 'Col7':[22], 'Col8':[44]})
data5 = pd.concat([data1, data2, data3, data4])
data5
这是我的实际输出
我期待的是:
提前感谢您可以使用轴=1,但首先重复匹配最大行长的值:
dfs = [data1, data2, data3, data4]
maxlen = len(max(dfs, key=len))
print (maxlen)
4
dfs = [pd.concat([x] * int(np.ceil(maxlen / len(x))), ignore_index=True).iloc[:maxlen]
for x in dfs]
data5 = pd.concat(dfs, axis=1)
print (data5)
Col Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8
0 33 44 33 22 33 22 33 22 44
1 44 55 44 22 44 22 33 22 44
2 55 55 33 22 44 44 33 22 44
3 67 555 44 22 33 22 33 22 44
如果给定的行数不同,您期望的输出大小是多少?所有的最大值?你能描述一下你试图解决的问题吗?我得到的错误是“str”对象没有属性concate。因为在我的原始数据框中,文本是成行的。如何克服这个问题error@SuneelKumar-hmm,我认为问题不在于
文本
,尝试更改样本数据并正常工作。@SuneelKumar-是否在dfs
列表数据帧
?是的,工作正常。这是我的错误,因为我写的是p.concat而不是pd。concat@SuneelKumar-太好了!