【发布时间】:2018-10-25 07:44:16
【问题描述】:
我有 3 个不同的 dfs,所有的列都有不同的列,但只有 1 个 ID。 我并不真正关心不同的数据,最后我想要的只是一个包含 ID 和另外三列的 DF,如果 ID 存在于 DF 中,每列包含 1,如果 ID 中包含 0(或没有)不存在。
一个例子:
DF1
index irrelevant columns
A
B
C
DF2
index irrelevant columns2
A
B
F
DF3
index irrelevant columns3
A
F
G
最终DF
index DF1 DF2 DF3
A 1 1 0
B 1 1 0
C 1 0 0
F 0 1 1
G 0 0 1
到目前为止,我正在做的(这在记忆方面非常糟糕)是(考虑索引 = ID)
df1['df1'] = 1
df1 = pd.DataFrame(df1['df1']) # There has to be a way around this that does not require to create a new DF
df2['df2'] = 1
df2 = pd.DataFrame(df2['df2'])
df3['df3'] = 1
df3 = pd.DataFrame(df3['df3'])
data = pd.concat([df1,df2,df3], sort=False, axis=1)
我确信必须有一种更好的方法,不需要我只用列创建新的 df,但是我尝试过的所有方法都会写入 dfs 的所有列,我不需要那个.
【问题讨论】: