从两个 pandas dfs 添加选定的列
add selected columns from two pandas dfs
我有两个 pandas 数据帧 a_df 和 b_df。 a_df 有列 ID、atext 和 var1-var25,而 b_df 有列 ID、atext 和 var1-var 25。
我只想添加来自 a_df 和 b_df 的相应变量,并单独保留 ID 和文本。
下面的代码添加了所有相应的列。有没有办法让它只添加感兴趣的列?
absum_df=a_df.add(b_df)
我该怎么做才能实现这一目标?
使用filter
:
absum_df = a_df.filter(like='var').add(b_df.filter(like='var'))
如果您想保留其他列,请在求和后使用 concat
:
absum_df = pd.concat([a_df[['ID', 'atext']], absum_df], axis=1)
或者,如果您想添加 a_df
中的所有列而不是 [=16] 中的所有列,而不是从 a_df
中选择列,您可以只删除 absum_df
中的列=]:
absum_df = pd.concat([a_df.drop(absum_df.columns axis=1), absum_df], axis=1)
您可以将数据框子集化到特定列:
var_columns = ['var-{}'.format(i) for i in range(1,26)]
absum_df=a_df[var_columns].add(b_df[var_columns])
请注意,这将导致数据框仅包含 var 列。如果你想要一个包含来自 a_df 的非 var 列的数据框,并且 var 列是 a_df 和 b_df 的总和,你可以做
absum_df = a_df.copy()
absum_df[var_columns] = a_df[var_columns].add(b_df[var_columns])
我有两个 pandas 数据帧 a_df 和 b_df。 a_df 有列 ID、atext 和 var1-var25,而 b_df 有列 ID、atext 和 var1-var 25。
我只想添加来自 a_df 和 b_df 的相应变量,并单独保留 ID 和文本。
下面的代码添加了所有相应的列。有没有办法让它只添加感兴趣的列?
absum_df=a_df.add(b_df)
我该怎么做才能实现这一目标?
使用filter
:
absum_df = a_df.filter(like='var').add(b_df.filter(like='var'))
如果您想保留其他列,请在求和后使用 concat
:
absum_df = pd.concat([a_df[['ID', 'atext']], absum_df], axis=1)
或者,如果您想添加 a_df
中的所有列而不是 [=16] 中的所有列,而不是从 a_df
中选择列,您可以只删除 absum_df
中的列=]:
absum_df = pd.concat([a_df.drop(absum_df.columns axis=1), absum_df], axis=1)
您可以将数据框子集化到特定列:
var_columns = ['var-{}'.format(i) for i in range(1,26)]
absum_df=a_df[var_columns].add(b_df[var_columns])
请注意,这将导致数据框仅包含 var 列。如果你想要一个包含来自 a_df 的非 var 列的数据框,并且 var 列是 a_df 和 b_df 的总和,你可以做
absum_df = a_df.copy()
absum_df[var_columns] = a_df[var_columns].add(b_df[var_columns])