我构造了一个条件,从我的数据帧中提取一行:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从一个特定的列中取一个值:
val = d2['col_name']
但结果是,我得到的数据帧只包含一行和一列(即一个单元格)。这不是我需要的。我需要一个值(一个浮点数)。在熊猫身上怎么做呢?
我构造了一个条件,从我的数据帧中提取一行:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从一个特定的列中取一个值:
val = d2['col_name']
但结果是,我得到的数据帧只包含一行和一列(即一个单元格)。这不是我需要的。我需要一个值(一个浮点数)。在熊猫身上怎么做呢?
当前回答
df_gdp.columns
Index([u'Country', u'Country Code', u'Indicator Name', u'Indicator Code', u'1960', u'1961', u'1962', u'1963', u'1964', u'1965', u'1966', u'1967', u'1968', u'1969', u'1970', u'1971', u'1972', u'1973', u'1974', u'1975', u'1976', u'1977', u'1978', u'1979', u'1980', u'1981', u'1982', u'1983', u'1984', u'1985', u'1986', u'1987', u'1988', u'1989', u'1990', u'1991', u'1992', u'1993', u'1994', u'1995', u'1996', u'1997', u'1998', u'1999', u'2000', u'2001', u'2002', u'2003', u'2004', u'2005', u'2006', u'2007', u'2008', u'2009', u'2010', u'2011', u'2012', u'2013', u'2014', u'2015', u'2016'], dtype='object')
df_gdp[df_gdp["Country Code"] == "USA"]["1996"].values[0]
8100000000000.0
其他回答
如果你有一个只有一行的DataFrame,那么使用iloc访问第一行作为Series,然后使用列名访问值:
In [3]: sub_df
Out[3]:
A B
2 -0.133653 -0.030854
In [4]: sub_df.iloc[0]
Out[4]:
A -0.133653
B -0.030854
Name: 2, dtype: float64
In [5]: sub_df.iloc[0]['A']
Out[5]: -0.13365288513107493
你可以把你的1x1数据帧转换成一个NumPy数组,然后访问该数组的第一个也是唯一的值:
val = d2['col_name'].values[0]
我需要一个单元格的值,按列名和索引名选择。 这个解决方案对我很有效:
original_conversion_frequency.loc [1:] . values [0]
要获得完整行的值为JSON(而不是一个Serie):
row = df.iloc[0]
像下面这样使用to_json方法:
row.to_json()
大多数答案都是使用iloc,它适合按位置选择。
如果需要按标签选择,loc会更方便。
显式获取值(相当于已弃用 df.get_value (' a ', ' ')) #这也等价于df1.at['a',' a'] 在[55]:df1中。loc [' a ', ' ') [55]: 0.13200317033032932