Python Pandas Dataframe基于A列拉取B列的单元格值

时间:2018-03-06 04:41:05

标签: python pandas dataframe

在这里挣扎。可能会遗漏一些非常简单的东西,但是在试图学习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']

没有问题,返回正确的值等等。

感谢任何帮助。我看到了一堆类似的线程,但由于某些原因,搜索并盲目地编写代码行是我今晚失败的。

2 个答案:

答案 0 :(得分:1)

你可以使用.loc方法

df.Sales.loc[df.FiscalYear==2007.0]

这将是pandas系列类型的对象。 如果你想在列表中找到它,你可以这样做:

df.Sales.loc[df.FiscalYear==2007.0].tolist()

答案 1 :(得分:0)

你可以试试这个:

v = df.at[df.FiscalYear.eq(2007.0).index[0], 'Sales']