Python 3.x 如何将列的内容移动到其旁边的列

Python 3.x 如何将列的内容移动到其旁边的列,python-3.x,pandas,Python 3.x,Pandas,数据帧如下所示: import pandas as pd df = pd.DataFrame ({ 'Name':['Brian','John','Adam'], 'HomeAddr':[12,32,44], 'Age':['M','M','F'], 'Genre': ['NaN','NaN','NaN'] }) 电流输出为: Name HomeAddr Age Genre 0 Brian 12 M NaN 1

数据帧如下所示:

import pandas as pd 

df = pd.DataFrame ({
    'Name':['Brian','John','Adam'],
    'HomeAddr':[12,32,44],
    'Age':['M','M','F'],
    'Genre': ['NaN','NaN','NaN']
    })
电流输出为:

    Name  HomeAddr Age Genre
0  Brian        12   M   NaN
1   John        32   M   NaN
2   Adam        44   F   NaN
我想将HomeAddr和Age列的内容转换为+1列。下面是预期输出的示例

    Name HomeAddr  Age Genre
0  Brian      NaN   12     M
1   John      NaN   32     M
2   Adam      NaN   44     F
我尝试了.shift(),但它不起作用

import pandas as pd 

df = pd.DataFrame ({
    'Name':['Brian','John','Adam'],
    'HomeAddr':[12,32,44],
    'Age':['M','M','F'],
    'Genre': ['NaN','NaN','NaN']
    })

df['HomeAddr'] = df['HomeAddr'].shift(-1)
print(df)


    Name  HomeAddr Age Genre
0  Brian      32.0   M   NaN
1   John      44.0   M   NaN
2   Adam       NaN   F   NaN
有什么想法吗,伙计们?谢谢大家!

使用,但必须将列转换为字符串以避免丢失值,然后将数字列转换回:

df.loc[:, 'HomeAddr':] = df.loc[:, 'HomeAddr':].astype(str).shift(1, axis=1)
df['Age'] = pd.to_numeric(df['Age'])
print (df)
    Name HomeAddr Age Genre
0  Brian      NaN  12     M
1   John      NaN  32     M
2   Adam      NaN  44     F
另一个现成的解决方案:

df = df.drop('Genre', axis=1).rename(columns={'HomeAddr':'Age', 'Age':'Genre'})
df.insert(1, 'HomeAddr', np.nan)
print (df)
    Name  HomeAddr  Age Genre
0  Brian       NaN   12     M
1   John       NaN   32     M
2   Adam       NaN   44     F

祝贺你写了一个解释得很好的问题,包括示例数据帧!