dataframe 数据列错位,后一列替换前一列

import pandas as pd
import numpy as np
df = pd.DataFrame([[1,np.nan,3],[4,np.nan,6],[7,8,9]])
print(df)

期望的结果:

3和6移到前一列,并用“否”替换之

 

我费劲给你写了朋友,采纳给我不过分把?

import pandas as pd
import numpy as np


df = pd.DataFrame([[1,np.nan,3],[4,np.nan,6],[7,8,9]])

print(df)

# 转层矩阵,让NAN右移动,行遍历
matrix = df.values
for m in range(len(matrix)):
    row = matrix[m]
    for x in range(len(row)):
        if np.isnan(row[x]):
            if x == len(row)-1:
                pass
            else:
                matrix[m] = np.concatenate([row[:x], row[x+1:] , row[x:x+1]],axis=0)
df_ = pd.DataFrame(matrix)
df_.columns = df.columns
print(df_)

# 替换nan
df_ = df_.fillna('否')
print(df_)

输出展示:

请关注公众号「机器学习炼丹术」~

df['1']=

df['2']=