【问题标题】:For each x in column 1, put a y in column 2对于第 1 列中的每个 x,在第 2 列中放置一个 y
【发布时间】:2020-07-17 20:52:10
【问题描述】:

我在两个单独的 Excel 工作簿中有两个单独的列 namesIDs

Column 1 
     
550

550

450

550 


Column 2 (in a different excel workbook)

Jane

Bob

在一个新的 Excel 工作簿中,我想为 nameID 创建两个单独的列。对于第 1 列中的每 550 个,我想将“Jane”放在第 2 列中,并且对于第 2 列中的每 450 个,我想将 Bob。我还没有起草工作代码,有没有简单的方法可以做到这一点?

【问题讨论】:

  • 如果您在 Excel 中执行此操作,请使用 VLOOKUP。如果您在 Python / pandas 中执行此操作,请使用 map

标签: pandas match variable-assignment


【解决方案1】:

有几种方法可以做到这一点。如果您是 Python/Pandas 的新手,我会做一些简单的事情,例如将您的 id 列复制到一个名为 name 的新列中,然后替换这些值。

这是这样的:

import pandas as pd

### Make up data, you would probably just 
### import this from your Excel file
colA = [550, 550, 450, 550]
df = pd.DataFrame(list(zip(colA)), columns =['ids']) 

df['names'] = df['ids']
df.replace({'names': {550: 'Bob', 450: 'Jane'}}, inplace=True)
display(df)

如 cmets 中所述,另一种方法是使用字典“映射”它:

mydict = {550:'Bob', 450:'Jane'}
df['using_map'] = df['ids'].map(mydict)
display(df)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2016-07-12
    • 2021-01-31
    相关资源
    最近更新 更多