从多个 DataFrame 中收集重复的列名 Python
Collecting Duplicate Column names from multiple DataFrames Python
本质上,我正在尝试创建一个列表,以便我可以在重复的列名上合并我的数据框。以下是我目前的设置方式。
sheets = [df1, df2, df3, df4]
col_list = []
dup_list = []
for i in sheets:
col_list.append(i.columns.values)
for c in col_list:
if c.duplicated():
dup_list.append(c)
我收到以下错误
AttributeError: 'numpy.ndarray' object has no attribute 'duplicated'
我知道没有复制的方法。获取出现在所有数据框中的重复列名的最佳方法是什么。
非常感谢任何帮助。
我相信您需要 set.intersection
并将所有列名称映射到 set
s:
df1 = pd.DataFrame(columns=list('acbd'))
df2 = pd.DataFrame(columns=list('abde'))
df3 = pd.DataFrame(columns=list('cbad'))
df4 = pd.DataFrame(columns=list('acbf'))
sheets = [df1, df2, df3, df4]
L = [x.columns for x in sheets]
#less readable
#L = [x for x in sheets]
dup_list = list(set.intersection(*map(set,L)))
print (dup_list)
['a', 'b']
本质上,我正在尝试创建一个列表,以便我可以在重复的列名上合并我的数据框。以下是我目前的设置方式。
sheets = [df1, df2, df3, df4]
col_list = []
dup_list = []
for i in sheets:
col_list.append(i.columns.values)
for c in col_list:
if c.duplicated():
dup_list.append(c)
我收到以下错误
AttributeError: 'numpy.ndarray' object has no attribute 'duplicated'
我知道没有复制的方法。获取出现在所有数据框中的重复列名的最佳方法是什么。
非常感谢任何帮助。
我相信您需要 set.intersection
并将所有列名称映射到 set
s:
df1 = pd.DataFrame(columns=list('acbd'))
df2 = pd.DataFrame(columns=list('abde'))
df3 = pd.DataFrame(columns=list('cbad'))
df4 = pd.DataFrame(columns=list('acbf'))
sheets = [df1, df2, df3, df4]
L = [x.columns for x in sheets]
#less readable
#L = [x for x in sheets]
dup_list = list(set.intersection(*map(set,L)))
print (dup_list)
['a', 'b']