从.apply函数将值添加到列

时间:2019-03-27 15:08:42

标签: pandas

我试图将一个简单的值应用于我的熊猫框架的一列,但始终显示NaN,我找不到原因。 这是我的代码。

def get_extra_hours(value):
    return f'{value[12] -40: .2f}'

raw_data = pd.read_csv('testdata.csv')
unified = raw_data.groupby('Employee').sum()
unified['Hourly Rate'] = raw_data.groupby('Employee').first()['Hourly Rate']
unified['Extra Hours'] = raw_data.apply(get_extra_hours, axis=1)

print(unified.to_string())

value [12]中的数据是一个浮点数,我只需要从value [12]中取出40并以两位小数返回即可。它可以是浮点数或字符串。

1 个答案:

答案 0 :(得分:0)

我让它工作了,但仍然不明白为什么以前没有工作,但这是我的工作方式

def get_extra_hours(value):

    x = value['Total Hours'] - 40
    if x > 0:
        return x
URL = f'https://api.mytimestation.com/v0.1/reports/?api_key={API_KEY}&Report_StartDate={date}&id={CODE}&exportformat=csv'
raw_data = pd.read_csv('testdata.csv')
unified = raw_data.groupby('Employee').sum()
unified['Hourly Rate'] = raw_data.groupby('Employee').first()['Hourly Rate']
unified['Extra Hours'] = unified.apply(get_extra_hours, axis=1)

print(unified.to_string())

我更改了Unified ['Extra Hours'] = Unified.apply(get_estra_hours,axis = 1) 并更改函数get_extra_hours()。