相关疑难解决方法(0)

Pandas有条件地创建一个系列/数据帧列

我有一个沿着下面的数据框:

    Type       Set
1    A          Z
2    B          Z           
3    B          X
4    C          Y
Run Code Online (Sandbox Code Playgroud)

我想在数据帧中添加另一列(或生成一系列)与数据帧相同的长度(=相等的记录/行数),如果Set ='Z'则设置颜色为绿色,如果Set =否则设置为'red' .

最好的方法是什么?

python numpy dataframe pandas

260
推荐指数
7
解决办法
33万
查看次数

在Pandas中使用ELIF创建列

我无法根据其他两列中的值来确定如何创建新的DataFrame列.我需要使用if/elif/else逻辑.但我发现的所有文档和示例只显示if/else逻辑.这是我想要做的一个示例:

df['combo'] = 'mobile' if (df['mobile'] == 'mobile') elif (df['tablet'] =='tablet') 'tablet' else 'other')
Run Code Online (Sandbox Code Playgroud)

我也愿意使用where().只是找不到合适的语法.

python pandas

16
推荐指数
3
解决办法
3万
查看次数

错误:float对象没有属性notnull

我有一个数据帧:

  a     b     c
0 nan   Y     nan
1  23   N      3
2 nan   N      2
3  44   Y     nan
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的结果:

  a     b     c      d
0 nan   Y     nan   nan
1  23   N      3     96
2 nan   N      2    nan
3  44   Y     nan    44
Run Code Online (Sandbox Code Playgroud)

我希望有一个条件,当列a为空时,如果列b为N且列c不为null则d为空,则列d等于列a*列c否则列d等于列a

我已经完成了这段代码,但是我得到了错误:

def f4(row):
    if row['a']==np.nan:
       return np.nan
    elif row['b']=="N" & row(row['c'].notnull()):
       return row['a']*row['c']
    else:
       return row['a']

 DF['P1']=DF.apply(f4,axis=1)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我指出我的错误在哪里?我已经参考了这个并尝试了这个,但也得到错误基于if-elif-else条件创建一个新列

python pandas

11
推荐指数
4
解决办法
1万
查看次数

Pandas:根据另一列的映射值创建新列

我想根据 Python 中另一列的条件创建一个新列。更具体地说,我在数据框中的一列是:

Kilos:
1. 8.0
2. 16.0
3. 12.0
4. 10.0
5. 5.0
...
Run Code Online (Sandbox Code Playgroud)

我希望新列基于此列,每次您找到kilos公斤为 8.0 的行(在列中),那么新列的行将写入“X2 + 部分”,当列为 16.0 时,该行将写入新专栏将写“X8 + parts”,对于我不关心的其他专栏。它们可以是空白或其他任何内容。

python dataframe python-3.x pandas

4
推荐指数
1
解决办法
4128
查看次数

标签 统计

pandas ×4

python ×4

dataframe ×2

numpy ×1

python-3.x ×1