2024-09-29 22:29:56 发布
网友
在Python的Pandas中,我使用的数据帧如下:
drinks = pandas.read_csv(data_url)
其中data_url是指向CSV文件的字符串url
当索引所有“轻度饮酒者”的框架时,其中轻度饮酒者由1种饮品构成,应写下以下内容:
有没有更干巴巴的方式来自我参照“家长”?一、 例如:
drinks.light_drinker[self == 1]
在最新版本的pandas中,.where()还接受一个callable!在
.where()
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.where.html?highlight=where#pandas.DataFrame.where
因此,现在可以进行以下操作:
drinks.light_drinker.where(lambda x: x == 1)
这在方法链中特别有用。但是,这将只返回序列(而不是根据light_drinker列中的值过滤的数据帧)。这与你的问题是一致的,但我将详细说明另一个案件。在
light_drinker
要获取筛选的数据帧,请使用:
注意,这将保持self的形状(这意味着您将拥有所有条目都是NaN的行,因为该索引的light_drinker值的条件失败)。在
NaN
如果不想保留数据帧的形状(即希望删除NaN行),请使用:
drinks.query('light_drinker == 1')
请注意,DataFrame.index和DataFrame.columns中的项默认放置在query命名空间中,这意味着您不必引用自身。在
DataFrame.index
DataFrame.columns
query
您现在可以根据需要使用query或assign:
或者使df突变:
旧答案
目前还没有,但正在讨论对您想法的改进here。对于简单的情况,where就足够了。新的API可能如下所示:
where
df.set(new_column=lambda self: self.light_drinker*2)
我不知道有什么方法可以引用像熊猫中的self或{}这样的父对象,但是也许另一种可以被认为更枯燥的方法是where()。在
self
where()
drinks.where(drinks.light_drinker == 1, inplace=True)
在最新版本的pandas中,
.where()
还接受一个callable!在http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.where.html?highlight=where#pandas.DataFrame.where
因此,现在可以进行以下操作:
这在方法链中特别有用。但是,这将只返回序列(而不是根据
light_drinker
列中的值过滤的数据帧)。这与你的问题是一致的,但我将详细说明另一个案件。在要获取筛选的数据帧,请使用:
^{pr2}$注意,这将保持self的形状(这意味着您将拥有所有条目都是
NaN
的行,因为该索引的light_drinker
值的条件失败)。在如果不想保留数据帧的形状(即希望删除
NaN
行),请使用:请注意,
DataFrame.index
和DataFrame.columns
中的项默认放置在query
命名空间中,这意味着您不必引用自身。在您现在可以根据需要使用query或assign:
或者使df突变:
^{pr2}$旧答案
目前还没有,但正在讨论对您想法的改进here。对于简单的情况,
where
就足够了。新的API可能如下所示:我不知道有什么方法可以引用像熊猫中的}这样的父对象,但是也许另一种可以被认为更枯燥的方法是
self
或{where()
。在相关问题 更多 >
编程相关推荐