如何根据熊猫数据框中的条件移动列中的值

d

嗨,我有这样的df,

    Name    sl no   details                 score
0   Ram     1       ram is going to ooty    NaN
1   Ram     2       ram sings well          1.5
2   Ravi    1       ravi play cricket       1.0
3   Ravi    2       ravi is in chennai      NaN
4   Kumar   1       kumar passed the exam   NaN
5   Kumar   2       kumar is in town        NaN
6   Kumar   3       he left                 3.0

我正在尝试移动分数列中的值。值应移动到单元格df[sl no]==1 or df[Name] is the first occurence of a name

我的预期输出应该是这样,

    Name    sl no   details                 score
0   Ram     1       ram is going to ooty    1.5
1   Ram     2       ram sings well          NaN
2   Ravi    1       ravi play cricket       1.0
3   Ravi    2       ravi is in chennai      NaN
4   Kumar   1       kumar passed the exam   3.0
5   Kumar   2       kumar is in town        NaN
6   Kumar   3       he left                 NaN

请帮忙。

cs95

next 在列表理解中

有条件地调用next列表推导中的迭代器。

assert df['sl no'].eq(1).sum() == df['score'].notna().sum()

it = iter(df.score.dropna().tolist())
df['score'] = [
    next(it) if i else np.nan for i in df['sl no'].eq(1)
]

df
    Name  sl no                details  score
0    Ram      1   ram is going to ooty    1.5
1    Ram      2         ram sings well    NaN
2   Ravi      1      ravi play cricket    1.0
3   Ravi      2     ravi is in chennai    NaN
4  Kumar      1  kumar passed the exam    3.0
5  Kumar      2       kumar is in town    NaN
6  Kumar      3                he left    NaN

如果您的assert陈述失败,则说明您的数据有问题,您提出的要求也不可行。


loc基于分配

v = df.score.dropna().tolist()

df['score'] = np.nan
df.loc[df['sl no'].eq(1), 'score'] = v

df
    Name  sl no                details  score
0    Ram      1   ram is going to ooty    1.5
1    Ram      2         ram sings well    NaN
2   Ravi      1      ravi play cricket    1.0
3   Ravi      2     ravi is in chennai    NaN
4  Kumar      1  kumar passed the exam    3.0
5  Kumar      2       kumar is in town    NaN
6  Kumar      3                he left    NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据熊猫数据框数据透视表中的条件获取列中的值?

根据熊猫数据框中的条件为列分配值

熊猫数据框根据条件更改列中的值

根据条件替换熊猫数据框列中的值

如何根据条件替换熊猫数据框中的值?

如何根据条件在熊猫数据框中创建新列?

如何根据熊猫中的条件为数据框的子集的列分配值?

如何根据“标识符列”和熊猫数据框中的附加条件替换值?

根据条件在熊猫数据框中的多行中设置值

根据条件在熊猫数据框中添加新列,并替换不同列中的Nan值

根据条件将数据框的值移动到列表中

如何根据另一列中满足的条件在熊猫数据框中添加新列?

根据熊猫数据框中其他列的条件和值创建新列

根据多种条件替换熊猫数据框中的值

根据条件屏蔽熊猫数据框中的值

如何根据多种条件更改熊猫数据框列系列中的特定单元格值?

根据列中的值从熊猫数据框中删除行

根据条件在熊猫数据框中创建一列

在熊猫数据框中根据条件为组创建列

根据条件在熊猫数据框中删除列

根据条件在熊猫数据框中创建列

如何根据其他两列中的值在熊猫数据框中添加新列

如何根据条件在熊猫数据框中的任何位置替换值?

如何根据条件为熊猫数据框中的行组分配唯一值?

如何根据条件用列名替换熊猫数据框中的值?

如何根据熊猫数据框中的字符串值使用 where 条件?

如何根据熊猫数据框中的条件选择日期

如何使用熊猫数据框中其他列的条件语句对列中的值求和?

如何根据列中逗号分隔值的数量复制熊猫数据框中的行