这是此question的后续内容。
我正在尝试将两个数据框合并到一个公共列上,但是一个数据框具有多个具有相同名称的列。我想使用该列进行合并。
这些是我的数据框:
df1 = pd.DataFrame([['abc', 'xyz'], ['abc', 'xyz'], ['xyz', 'abc']], columns=['max_speed', 'min_speed'])
df2 = pd.DataFrame([['abc', 'xyz'], ['abc', 'xyz'], ['xyz', 'abc']], columns=['max_speed', 'max_speed'])
我有一个特殊的情况,我的数据框有多个具有相同名称(reference)的列。
我尝试使用列的位置而不是列名进行访问,但是没有用
我尝试过的事情:
df3 = df1.merge(df2, right_on=df1.columns[0],left_on=df2.columns[0])
错误:
ValueError:列标签“ max_speed”不是唯一的。
让我知道如何解决这个问题。
答案 0 :(得分:1)
您可以with tempFile.NamedTemporaryFile("wb") as f_source:
s3_client.download_fileobj(s3_bucket, s3_key, f_source)
logger.info(f'{s3_key} file downloaded successfully to local {f_source}')
f_source.flush()
file_name = self.s3_key.split('/')[-1]
gpg = gnupg.GPG()
key_data = open(key_path).read()
import_result = gpg.import_keys(key_data)
f_source.seek(0)
with open(f_source.name, 'r+b') as f:
status = gpg.encrypt_file(
file=f,
recipients=[recipient],
output=f'{file_name}.gpg',
)
s3_hook.load_file(
filename=f_source.name,
key=s3_key,
bucket_name=s3_bucket,
replace=True
)
将该列放在set_index
中所需的位置,然后将df2
与merge
一起使用。
right_index=True