假设我有以下两个数据帧X1和X2。我想要 按行合并这两个数据帧,以便每个数据框都有一个 数据帧相同,组合了两者的相应行 dataframes。
A B C D
DATE1 a1 b1 c1 d1
DATE2 a2 b2 c2 d2
DATE3 a3 b3 c3 d3
A B C D
DATE1 f1 g1 h1 i1
DATE2 f2 g2 h2 i2
DATE3 f3 g3 h3 i3
how would i combine them to get
A B C D
DATE1 A1 B1 C1 D1
f1 g1 h1 i1
DATE2 A2 B2 C2 D2
f2 g2 h2 i2
DATE3 A3 B3 C3 D3
f3 g3 h3 i3
到目前为止,我已经尝试了这个,但这似乎不起作用:
d= pd.concat( { idx : [ X1[idx], X2[idx]] for idx, value in appended_data1.iterrows() } , axis =1}
感谢
答案 0 :(得分:6)
选项1
$stmt=$db->prepare('SELECT *, COUNT(*) AS cnt FROM cusbuilder_sites ORDER BY id');
$stmt->execute();
$row = $stmt->fetchAll();
if ($row['cnt'] > $row[id]) {
...
选项2 广义
df3 = df1.stack().to_frame('df1')
df3.loc[:, 'df2'] = df2.stack().values
df3 = df3.stack().unstack(1)
df3
idx = df1.stack().index
dfs = [df1, df2]
dflabels = ['df1', 'df2']
a = np.stack([d.values.flatten() for d in dfs], axis=1)
df3 = pd.DataFrame(a, index=idx, columns=dflabels).stack().unstack(1)
from StringIO import StringIO
import pandas as pd
df1_text = """ A B C D
DATE1 a1 b1 c1 d1
DATE2 a2 b2 c2 d2
DATE3 a3 b3 c3 d3"""
df2_text = """ F G H I
DATE1 f1 g1 h1 i1
DATE2 f2 g2 h2 i2
DATE3 f3 g3 h3 i3"""
df1 = pd.read_csv(StringIO(df1_text), delim_whitespace=True)
df2 = pd.read_csv(StringIO(df2_text), delim_whitespace=True)
df1
答案 1 :(得分:1)
也许这个解决方案也可以解决您的问题:
df3 = pd.concat([df1,df2]).sort_index()
print df3
Out[42]:
A B C D
DATE1 a1 b1 c1 d1
DATE1 f1 g1 h1 i1
DATE2 a2 b2 c2 d2
DATE2 f2 g2 h2 i2
DATE3 a3 b3 c3 d3
DATE3 f3 g3 h3 i3