我们如何将特定的过滤行作为系列?
示例数据帧:
>>> df = pd.DataFrame({'date': [20130101, 20130101, 20130102], 'location': ['a', 'a', 'c']})
>>> df
date location
0 20130101 a
1 20130101 a
2 20130102 c
Run Code Online (Sandbox Code Playgroud)
我需要选择该行,其中location
是c
一系列.
我试过了:
row = df[df["location"] == "c"].head(1) # gives a dataframe
row = df.ix[df["location"] == "c"] # also gives a dataframe with single row
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,我都不能将该行作为系列.
Bou*_*oud 65
使用squeeze
将从数据框中删除一个维度的函数:
df[df["location"] == "c"].squeeze()
Out[5]:
date 20130102
location c
Name: 2, dtype: object
Run Code Online (Sandbox Code Playgroud)
DataFrame.squeeze
当设置为:时,方法的作用方式squeeze
与read_csv
函数的参数相同True
:如果结果数据帧是1-len数据帧,即它只有一个维度(列或行),则对象被压缩到较小的维度宾语.
在您的情况下,您从DataFrame获得一个Series对象.如果将Panel压缩到DataFrame,则适用相同的逻辑.
挤压在您的代码中是明确的,并清楚地显示您的意图"抛弃"手中的对象,因为它的尺寸可以投影到较小的尺寸.
如果数据框有多个列或行,则squeeze无效.
Rom*_*kar 15
您可以使用整数索引(iloc()函数)获取第一行:
>>> df[df["location"] == "c"].iloc[0]
date 20130102
location c
Name: 2, dtype: object
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27530 次 |
最近记录: |