草庐IT

python - Pandas 面板中的 bool 掩码

我在用与DataFrame相同的方式屏蔽面板时遇到了一些问题。我想做的事情感觉很简单,但我还没有找到查看文档和在线论坛的方法。我在下面有一个简单的例子:importpandasimportnumpyasnpimportdatetimestart_date=datetime.datetime(2009,3,1,6,29,59)r=pandas.date_range(start_date,periods=12)cols_1=['AAPL','AAPL','GOOG','GOOG','GS','GS']cols_2=['close','rate','close','rate','close'

python - Numpy 将 bool 数组的字符串表示形式转换为 bool 数组

是否有一种原生的numpy方法来转换bool值的字符串表示数组,例如:['True','False','True','False']我可以使用一个实际的bool数组来屏蔽/索引?我可以做一个for循环遍历并重建数组,但对于大型数组来说,这很慢。 最佳答案 无论dtype是字符串还是object,您都应该能够进行bool比较,IIUC:>>>a=np.array(['True','False','True','False'])>>>aarray(['True','False','True','False'],dtype='|S5')>

python - 在 pandas 中使用 groupby 进行 bool 运算

我想以特定方式使用pandas.groupby。给定一个包含两个bool列(分别称为col1和col2)和一个id列的DataFrame,我想按以下方式添加一列:对于每个条目,如果(col2为True)并且(col1对于任何具有相同ID的条目为True)则分配True。否则为假。我做了一个简单的例子:df=pd.DataFrame([[0,1,1,2,2,3,3],[False,False,False,False,False,False,True],[False,True,False,False,True,True,False]]).transpose()df.columns=['id

python - 从 Pandas 中的过滤结果创建 bool 掩码

这个问题在这里已经有了答案:Selectingwithcomplexcriteriafrompandas.DataFrame(5个答案)关闭6年前。我知道如何在查询单个列时创建掩码来过滤数据框:importpandasaspdimportdatetimeindex=pd.date_range('2013-1-1',periods=100,freq='30Min')data=pd.DataFrame(data=list(range(100)),columns=['value'],index=index)data['value2']='A'data['value2'].loc[0:10]=

python - 迭代器作为 bool 语句?

我遇到了这段代码:defmyzip(*args):iters=map(iter,args)whileiters:res=[next(i)foriiniters]yieldtuple(res)我不确定:为什么列表理解不需要捕获StopIterationwhileiters如何像我尝试的那样工作:x=[1,2]x=iter(x)ifx:print("StillTrue")next(x)next(x)ifx:print("StillTrue")并且在这两种情况下它仍然打印"StillTrue"。代码的作者还说,因为map在3.X中返回一个“一次性迭代器”,并且“只要我们在循环中运行一次列表理

python - Python bool() 函数可以为无效参数引发异常吗?

int()或float()之类的函数可能会引发异常(ValueError)如果参数不能转换为适当的数字类型。因此,如果有可能将无效参数传递给它们,将它们包含在try-except中通常是一种很好的做法。但是考虑到Python在“真实性”方面的灵active,我想不出您可以传递给bool()函数的任何可能引发异常的值。即使您完全不带参数调用它,该函数也会完成并返回False。我是否正确认为bool()不会引发异常,只要您传递给它的参数不超过一个?因此,将调用包含在try-except?中毫无意义 最佳答案 bool提示__bool__

python - 计算列中 bool 值从 True 变为 False 的次数

我在数据框中有一列,其中填充了bool值,我想计算它从True变为False的次数。当我将bool值转换为1和0时,我可以这样做,然后使用df.diff然后将该答案除以2importpandasaspdd={'Col1':[True,True,True,False,False,False,True,True,True,True,False,False,False,True,True,False,False,True,]}df=pd.DataFrame(data=d)print(df)0True1True2True3False4False5False6True7True8True9Tru

python - 在 CSV 文件中存储和检索 bool 值的便捷方法是什么

如果我使用CSV模块存储一个bool值,它会被str()函数转换为字符串True或False.但是,当我加载这些值时,False字符串的计算结果为True,因为它是一个非空字符串。我可以通过在读取时使用IF语句手动检查字符串来查看字符串是什么来解决这个问题,但它有点不够优雅。有没有更好的想法,或者这只是编程世界中的其中一件事? 最佳答案 在CSV文件中存储bool值的方法字符串:两个常见的选择是true和false,True和False,但我也看到yes和no。整数:0或1float:0.0或1.0让我们比较一下各自的优点/缺点:字

python - count() 方法中的整数到 bool 值的转换

[1,1,1,2,2,3].count(True)>>>3为什么这会返回3而不是6,如果bool(i)对所有值都返回Truei不等于0? 最佳答案 In[33]:True==1Out[33]:TrueIn[34]:True==2Out[34]:FalseIn[35]:True==3Out[35]:FalseTrue和False是bool的实例,bool是int.来自thedocs:[Booleans]representthetruthvaluesFalseandTrue.Thetwoobjectsrepresentingtheval

python - Pandas Filter 函数返回了一个 Series,但需要一个标量 bool

我试图在pandas数据框上使用过滤器来过滤掉所有匹配重复值的行(当存在重复时需要删除所有行,而不仅仅是第一行或最后一行)。这就是我在编辑器中的工作方式:df=df.groupby("student_id").filter(lambdax:x.count()==1)但是当我用这段代码运行我的脚本时,我得到了错误:TypeError:filterfunctionreturnedaSeries,butexpectedascalarbool在尝试应用过滤器之前,我通过连接另外两个帧来创建数据帧。 最佳答案 应该是:In[32]:group