Python:如何在Python中将dataframe设置为函数的参数?

Python:如何在Python中将dataframe设置为函数的参数?,python,pandas,Python,Pandas,CSV中有4列,我想将CSV设置为python中函数的参数。“键”应该是我在CSV中的第一列 df = pd.DataFrame({'Country': ['US','France','Germany'],'daycount':['Actual360','Actual365','ActaulFixed'],'frequency':['Annual','Semi','Quart'], 'calendar':['United','FRA','Ger'}) 从上面的数据框中,我想根据数据框中的键“C

CSV中有4列,我想将CSV设置为python中函数的参数。“键”应该是我在CSV中的第一列

df = pd.DataFrame({'Country': ['US','France','Germany'],'daycount':['Actual360','Actual365','ActaulFixed'],'frequency':['Annual','Semi','Quart'], 'calendar':['United','FRA','Ger'})
从上面的数据框中,我想根据数据框中的键“Country”,将参数设置为以下变量,它应该填充以下变量中的相应值。我需要一些函数或循环,通过它们我可以填充值。这些值将在下一个程序中进一步使用

day_count = Actual360
comp_frequency = Annual
gl_calendar = UnitedStates

我不确定我是否明白你的问题,让我试着重新表述一下

您有一个包含4列的熊猫数据框,其中一列(
Country
)用作索引(
DB语言中的主键
)。您希望对所有行进行迭代,并为每行检索其他3列中相应的值

如果我没有背叛你的意图,这里有一个代码可以完成这项工作。请注意,
DataFrame.set_index()
函数告诉pandas应该使用此列对行进行索引(而不是默认的数字列)

[1]中的
:将熊猫作为pd导入
在[2]中,df=pd.DataFrame({'Country':['US','France','dermany'],'daycount':['Actual360','Actual365','actualfixed'],'frequency':['Annual','Semi','Quart'],'calendar':['United','FRA','Ger'])。设置指数('Country')
In[3]:df
出[3]:
计日频率日历
国家
美国实际360年度联合国
法国1965半弗拉
德国固定夸脱格
[4]中:对于国家,df.iterrows()中的属性:
…:day_count=属性['daycount']
…:comp_frequency=属性['frequency']
…:#最后一个值的idem
…:打印(f“{country}->{day\u count},{comp\u frequency}”)
...:                                                    
美国->实际360,年度
法国->实际365,半决赛
德国->ActaulFixed,夸脱
在[5]中:df.loc['US','daycount']#使用df.loc[,]检索特定值
输出[5]:“实际值360”
这是什么

def populate(df, country):
    day_count=df[df['Country']==country]['daycount'][0]
    comp_frequency=df[df['Country']==country]['frequency'][0]
    gl_calendar=df[df['Country']==country]['calendar'][0]
    return (day_count, comp_frequency, gl_calendar)
填充(df,'US')

输出:('Actual360'、'Annual'、'United')


如果我理解正确:

def retrieve_value(attribute, country, df): #input attribute and country as str
    return df.loc[df['Country'] == country, attribute].iloc[0]
例:


因此,您有一个包含所有相关值(country、daycount等)的df和另一个只包含country列而其余列为空的df?不。我只有一个df,我想在上述变量中填充这些值。国家应该是填充这些值的关键。我们可以创建字典和访问值吗。诸如此类……那么df最初只包含一列(国家)?df的其他列应该根据哪些数据填充?df有包括country在内的所有4列,我想使用country作为关键参数来填充其余的值。例如,如果我想获得德国的日计数,它应该填充“ActualFixed…”,因此,如果根据您的问题,答案是正确的,您可以单击旁边的勾选按钮将其标记为正确(请注意,这与向上投票按钮不同)。谢谢:)
retrieve_value('daycount', 'Germany', df) -> 'ActualFixed'