Python:如何还原数据帧中的值?

2024-04-26 03:07:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,由两列xy组成。我想选择dataframe值的一半,并用这种方式还原xy的值。你知道吗

df
         x      y
    0   2557    7
    1   2570    67
    2   2564    27
    3   2581    2578
    4   2571    38
    5   2565    11
    6   2578    41
    7   2577    44
    8   2579    30

dftmp = df  #save original data frame
indeces = np.arange(0, len(df))   # list of index
shuffle(indeces)   # random shuffle
indeces = indeces[0: int(len(indeces) / 2) ]  # take half of random indeces  

df['x'][indeces] = dftmp['y'][indeces]  # x new = y original
df['y'][indeces] = dftmp['x'][indeces]  # y new = x original

我不知道为什么它只改变y的值

    df

      x      y
0   2557    2557
1   2570    2570
2   2564    2564
3   2581    2581
4   38      38
5   2565    11
6   41      41
7   2577    44
8   2579    30

Tags: of数据dataframedfnewdatalensave
1条回答
网友
1楼 · 发布于 2024-04-26 03:07:28

下面是一个简短的方法:

df.update(df.sample(frac=0.5).rename(columns={'y': 'x', 'x': 'y'}))

df
Out: 
        x       y
0  2557.0     7.0
1  2570.0    67.0
2  2564.0    27.0
3  2578.0  2581.0
4    38.0  2571.0
5  2565.0    11.0
6    41.0  2578.0
7  2577.0    44.0
8    30.0  2579.0

相关问题 更多 >