首页 > 解决方案 > 编写函数以将列添加到数据框

问题描述

嗨,我想编写一个函数来在下面的数据框中添加两列:

ID             NUMBER      OBJECT
1345471886     SIZE-43     GHJ  
1481654311     SIZE-48     IJF   
8620787660     SIZE-67     EFH 

这是我的代码:

def add_columns(res):
    
    h = res.assign(Column_1='Value_1', Column_2='Value_2')
    return h
print(h)

我得到 NameError: name 'h' is not defined

我的预期输出是:


ID             NUMBER      OBJECT  Column_1    Column_2
1345471886     SIZE-43     GHJ     Value_1     Value_2
1481654311     SIZE-48     IJF     Value_1     Value_2
8620787660     SIZE-67     EFH     Value_1     Value_2

你能帮忙吗?非常感谢 !!

标签: pythonfunctiondataframe

解决方案


灵感来源:将具有常量值的列添加到 pandas 数据框

代码

from io import StringIO

def add_column(df, name, value):
    '''
        Adds a single column to DataFrame
    '''
    df[name] = pd.Series([value for x in range(len(df.index))], index=df.index)
    
    return df

用法

s = '''ID             NUMBER      OBJECT
1345471886     SIZE-43     GHJ
1481654311     SIZE-48     IJF
8620787660     SIZE-67     EFH '''

# Create DataFrame
df = df =pd.read_csv(StringIO(s), delim_whitespace=True) 

# Use function above to add 2 columns
add_column(df, "Column_1", "Value_1")
add_column(df, "Column_2", "Value_2")

print(df)

输出

          ID   NUMBER OBJECT Column_1 Column_2
0  1345471886  SIZE-43    GHJ  Value_1  Value_2
1  1481654311  SIZE-48    IJF  Value_1  Value_2
2  8620787660  SIZE-67    EFH  Value_1  Value_2

推荐阅读