有没有办法将原始输入存储在python中应用于数据帧的函数中


def update():
name = input('Which Country?')
if df.loc[name, 'added'] == 0:
df.loc[name, 'added'] = 'x'
return df.loc[name, 'added']
return 'Already Updated!!'

我创建了一个表,在df["Country"]和df["added"]列中有国家列表,每次我进入一个国家时,上面的函数都应该用"x"更新df["added"]。例如,我输入了"Afghanish","added"的阿富汗行将从0变为"x"以标记为已完成。然而,当我输入一个新的值,例如"阿尔巴尼亚"时,阿尔巴尼亚将被更新,但阿富汗将恢复到原来的0……我想知道是否有办法将原始输入存储在数据帧中(例如阿富汗的值(,而不是用新输入替换它?

这应该有助于u:

import pandas as pd
def update(df):    
name = input('Which Country?')
index = df.loc[df['Country']==name].index[0]
if df.loc[index,'added'] == '0':
df.loc[index,'added'] = 'x'
return df.loc[index, 'added']
return 'Already Updated!!'
df = pd.DataFrame({'Country':['Afghanistan','Albania'],'added':['0','0']})
ans = update(df)
print(ans)
ans = update(df)
print(ans)
print(df.head())

这是整个代码。这将正确更新df,还将返回您想要的值。u犯的错误是没有正确使用df.loc函数。改变它给了我正确的输出。此外,x没有恢复为0,这意味着此代码工作正常。请让我知道这是否适用于你和任何问题,欢迎!

最新更新