【问题标题】:extracting a single data from pandas data frame从熊猫数据框中提取单个数据
【发布时间】:2016-01-29 08:50:27
【问题描述】:

在给定不同列的特定值的情况下,如何从给定的 Dataframe 中提取值(字符串)。

例如,我想获取 'Value'=2 的 'Adrs'

import pandas as pd

df = pd.DataFrame({'Adrs':["AAA","BBB"],'Value':[1,2]}, index=[0,1])

print(df)
print("")

df2 = df[df['Value']==2]
string = df2.Adrs
print(string)

输出:

Adrs  Value
0  AAA      1
1  BBB      2

1    BBB
Name: Adrs, dtype: object

我想只提取“BBB”而不是整个表/数据框。有没有一种快速的方法来做到这一点,而无需对 df2.Adrs 进行一些解析

如果 df2 有多行,我可以通过 df2['Adrs'][1] 提取 BBB

见下文:

import pandas as pd

df = pd.DataFrame({'Adrs':["AAA","BBB"],'Value':[2,2]}, index=[0,1])

print(df)
print("")

df2 = df[df['Value']==2]
string = str(df2['Adrs'][1])
print(string)

输出:

 Adrs  Value
0  AAA      2
1  BBB      2

BBB

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:
    >>> df.loc[df['Value'] == 2, 'Adrs'].values[0]
    'BBB'
    >>> df.iat[1, 0]
    'BBB'
    >>> df.at[1, 'Adrs']
    'BBB'
    

    有几种方法。我敢肯定还有更多。

    【讨论】:

    • .iat 和 .at 有效,但前提是您知道数据框中的确切位置。但是你给出的第一个代码很适合我想要的。谢谢。
    【解决方案2】:

    df2.Adrs 仍然是一个系列,所以您要做的就是从中获取一个元素。 df2.Adrs.iloc(0) 将为您提供第一个元素,无论索引如何。但是如果 df2 有多行,你会怎么做呢?

    【讨论】:

    • 我使用 df2.Adrs.iloc(0) 得到“”。当 df2 有多行时,我可以通过 df2['Adrs'][x] 获取数据,具体取决于哪一行。查看更新的问题
    猜你喜欢
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多