我有下面的数据框:
Type Set
1 A Z
2 B Z
3 B X
4 C Y
我想向数据框添加另一列(或生成一系列),该列与数据框的长度相同(= equal number of records/rows)
,如果Set =’Z’则将颜色设置为green ,如果Set = 'Z' and 'red' if Set = otherwise
.
最好的方法是什么?
如果你只有两种选择:
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
例如,
import pandas as pd
import numpy as np
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
df['color'] = np.where(df['Set']=='Z', 'green', 'red')
print(df)
输出
Set Type color
0 Z A green
1 Z B green
2 X B red
3 Y C red
如果你有两个以上的条件,请使用np.select
。例如,如果你想color
成为
yellow
when (df['Set'] == 'Z') & (df['Type'] == 'A')
blue
when (df['Set'] == 'Z') & (df['Type'] == 'B')
purple
when (df['Type'] == 'B')
black
,然后使用
df = pd.DataFrame({'Type':list('ABBC'), 'Set':list('ZZXY')})
conditions = [
(df['Set'] == 'Z') & (df['Type'] == 'A'),
(df['Set'] == 'Z') & (df['Type'] == 'B'),
(df['Type'] == 'B')]
choices = ['yellow', 'blue', 'purple']
df['color'] = np.select(conditions, choices, default='black')
print(df)
输出:
Set Type color
0 Z A yellow
1 Z B blue
2 X B purple
3 Y C black
做这件事最好的方法是什么?
问题内容: 我有一个熊猫系列科幻小说: 我想将其转换为以下DataFrame: 我找到了一种方法,但是我怀疑这是更有效的方法: 问题答案: 无需创建2个临时df,您可以使用DataFrame构造函数将它们作为参数传递给dict中: 有很多方法可以构建df,请参阅文档
我试图从一个简单的熊猫数据流创建一个火花数据流。这是我遵循的步骤。 在这之前一切都好。输出为: Spark UI 版本:V2.4.0 主人:本地[*]
问题内容: 我创建了一个元组生成器,该元组生成器从仅过滤感兴趣记录的文件中提取信息,并将其转换为生成器返回的元组。 我尝试从创建数据框: 但是抛出一个错误: 我设法让它使用列表中的生成器,但是使用了两次内存: 我要加载的文件很大,内存消耗很重要。我的计算机的最后一次尝试花了两个小时来尝试增加虚拟内存:( 问题: 有人知道直接从记录生成器创建DataFrame的方法,而无需事先将其转换为列表吗? 注
问题内容: 我从这样的输入数据开始 打印时显示为: 分组非常简单: 打印产生一个对象: 但是我最终想要的是另一个DataFrame对象,该对象包含GroupBy对象中的所有行。换句话说,我想得到以下结果: 我在pandas文档中看不到如何完成此操作。任何提示都将受到欢迎。 问题答案: 这是一个。但是,它具有层次结构索引: 也许你想要这样的东西? 或类似的东西: