根据熊猫其他列中的值移动列

abhi1610

我有一个dataframe如下所示:

id  FY   SY   TY   Ylen
1   2018 2019 nan  2
2   2017 2018 2019 3
3   2018 2019 2020 3
4   2019 nan  nan  1
5   2018 nan  nan  1

我想根据中显示的数字移动列Ylen,使其看起来像这样:

id  FY   SY   TY   Ylen
1   nan  2018 2019 2
2   2017 2018 2019 3
3   2018 2019 2020 3
4   nan  nan  2019 1
5   nan  nan  2018 1

是否有可能shift()与条件。

耶斯列尔

首先是必要的相同类型的数据,这里float是s,然后是DataFrame.shift按条件列:

c = ['FY','SY','TY']

df[c] = df[c].astype(float)

for s in df['Ylen'].unique():
    m = df['Ylen'].eq(s)
    df.loc[m, c] = df.loc[m, c].shift(len(c)-s, axis=1)
print (df)
   id      FY      SY      TY  Ylen
0   1     NaN  2018.0  2019.0     2
1   2  2017.0  2018.0  2019.0     3
2   3  2018.0  2019.0  2020.0     3
3   4     NaN     NaN  2019.0     1
4   5     NaN     NaN  2018.0     1

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫根据其他列的值移动到通讯列

如何根据其他列的值将移动平均线包括在熊猫中

根据其他列值在熊猫中添加新列

根据其他列中的值填充熊猫列

如何根据熊猫中的其他列映射值?

根据其他两列替换熊猫中的值

熊猫使用其他列中的值创建新列,并根据列值进行选择

根据其他熊猫列值比较列值

遍历熊猫行并根据其他列中的值设置列值

熊猫根据其他列的值创建新的列ID

根据列值和其他列更新熊猫细胞

根据其他数据框中的列值在熊猫数据框中创建列

熊猫根据其他列中的值更改列中的值

熊猫-根据其他列中的值将数据添加到列中

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

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

如何根据熊猫中其他两列中的查找值分配最小值?

根据其他列的唯一值的长度在熊猫中创建新列

根据其他数据框列映射熊猫列中类别的值

根据带有熊猫的其他列在列中添加随机值

熊猫如何根据其他列中的值汇总一列的总和

根据熊猫中其他列的值添加具有唯一标识符的列

根据熊猫df中其他列的值有条件地填充列

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

根据熊猫中其他两个列的匹配值创建新列

根据熊猫中其他两列的比较更改列的值

熊猫根据其他列中的子字符串更改列值

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

熊猫如何使用.loc根据其他列中的值将列设置为NaN