在这里挣扎。可能会遗漏一些非常容易的东西,但是在试图学习Python并且意识到这可能不会为我解决这个问题时,我的头在我的桌子上。
我有一个数据框df
,需要根据A列的值拉取B列的值。
以下是我可以告诉您的数据集应该更容易的内容。 A列是独一无二的(FiscalYear),但尽管是一年被转换为to_numeric
。 B列并非特别独特(销售),而且A列也被转换为to_numeric
。这是我一直在尝试的,因为我在使用idx max查找销售价值时能够做到这一点。但是在特定值处,这会返回错误:
v = df.at[df.FiscalYear == 2007.0, 'Sales']
我正在接受ValueError: At based indexing on an integer index can only have integer indexers
我确信我做错了什么,但我不能完全指责它。
这是代码,对我有用。
v = df.at[df.FiscalYear.idxmax(), 'Sales']
那里没有问题,返回正确的价值等。
任何帮助表示赞赏。我看到了一堆类似的线程,但由于某些原因,搜索和盲目编写代码行是我今晚失败的原因。
你可以使用.loc方法
df.Sales.loc[df.FiscalYear==2007.0]
这将是熊猫系列类型的对象。如果你想在列表中你可以做到:
df.Sales.loc[df.FiscalYear==2007.0].tolist()
你能试试这个:
v = df.at[df.FiscalYear.eq(2007.0).index[0], 'Sales']