我有一个pandas df,并希望按照以下原则(用SQL术语)完成一些工作:
SELECT * FROM df WHERE column1 = 'a' OR column2 = 'b' OR column3 = 'c' etc.
现在,这适用于一个列/值对:
foo = df.loc[df['column']==value]
但是,我不确定如何将其扩展为多个列/值对。
由于运算符的优先级,您需要将多个条件括在括号中,并使用按位运算符(&
)和(或)和(|
)。
foo = df[(df['column1']==value) | (df['columns2'] == 'b') | (df['column3'] == 'c')]
如果使用and
或or
,则熊猫可能会抱怨这是模棱两可的。在那种情况下,我们是否要比较条件中一系列的每个值还不清楚,如果只有1个或除1外的所有条件都匹配,这意味着什么。这就是为什么您应该使用按位运算符或numpynp.all
或np.any
指定匹配条件的原因。
还有查询方法:http : //pandas.pydata.org/pandas-
docs/dev/genic/pandas.DataFrame.query.html
但是存在一些限制,主要与列名和索引值之间可能存在歧义的问题有关。
问题内容: 我有一个数据集,其中我试图确定每个人的危险因素数量。所以我有以下数据: 每个属性(年龄,吸烟者,糖尿病)都有自己的条件来确定是否是危险因素。因此,如果年龄> = 45,则是一个危险因素。吸烟者和糖尿病为“ Y”是危险因素。我想要添加一列,以根据这些条件总计每个人的风险因素数量。因此数据如下所示: 我有一个样本数据集,我在Excel中鬼混,而我这样做的方式是使用COUNTIF公式,如下所
我有一系列不同元素的值。值计数显示如下。 我想为每个类别创建列,并为每一行标记True/False。 e. g. 我设法从所有项目中获取了这些类别的唯一列表。我还可以通过在此处的解决方案中给出的方法将其制作成单独的列。 但在我的情况下,数据是不完整的/变化的,因此给我一个DF,如下所示 有没有办法使用熊猫或其他python工具将其转换为所需的输出。我现在正在使用pandas.pivot_table
问题内容: 我想根据以下条件创建一个带有数值的新列: 一种。 b。 C。所有其他组合, 我希望最终结果如下: 我该怎么做? 问题答案: 为此,可以使用做,条件使用位和用于和与周围的多个条件括号由于运算符优先级。因此,返回条件为true的地方,否则返回:
我有一个单一的CSV文件,在其中我想重命名一些列相同的名称。我的初始代码如下所示 我用这段代码从dataframe中提取了选定的列 此切片每隔三列获取一次。现在我想用相同的名称重命名每三列一次,但这样重命名我的列会出错 有没有办法在pandas中重命名多个同名列? 除了手动操作,还有其他建议吗?
我有这样一个数据帧: 我想选择第二列包含单词“NL”的行,它类似于SQL命令。有人知道Python Pandas中类似的命令吗?
我正在使用迭代代码遍历具有多索引的大数据帧。结果是一个具有多索引的系列。经过一些分析后,事实证明,大部分时间都花在获取序列的单元格值上,因此我想使用 Series.at 函数,因为它要快得多。不幸的是,我没有在熊猫文档中找到任何关于多索引的内容。 这是一个简单的代码: 我曾尝试过s.at[(“酒吧”、“一家”)],s.at[“酒吧”,“一家”),但没有这些作品。 有人知道如何在这种情况下使用.at