簡體   English   中英

Excel 復制粘貼方式在 Python

[英]Excel Copy Paste Way in Python

我有一個如下的數據框

df = pd.DataFrame([[3,2,1],[4,5,6],[10,20,30]], columns = ['A','B','C'])

    A   B   C
0   3   2   1
1   4   5   6
2  10  20  30

python 中是否有任何方法可以在 excel 中模仿復制和粘貼 function ? 例如我想復制粘貼第0行A列和B列並將它們粘貼到第0行B列和C中,這樣它就會變成

    A   B   C
0   3   3   2
1   4   5   6
2  10  20  30

在一個小數據框中,我可以使用:

df.loc[0,'C'] = df.loc[0,'B']
df.loc[0,'B'] = df.loc[0,'A']

但是我的原始數據框很大,我不想一個一個元素地做這個。 我也試圖做:

df.loc[0,['A','B']] = df.loc[0,['B','C']]

但是我在第 0 行 A 列中的數據變成了 NaN。

那么有沒有辦法做類似的事情,比如在 python 中的 excel 中復制粘貼(只需阻止一系列數據,復制它們並將它們粘貼到另一個現有數據的頂部)? 謝謝

anky_91 的回答

df.loc[0, ['B', 'C']] = df.loc[0, ['A', 'B']].to_numpy()

shift

有很多方法可以使用 shift。 這只是一個。

df.update(df.shift(axis=1)[['B', 'C']])

由於我不滿意的原因,您可以提供一個fill_valueshift以保留 integer dtype

df.update(df.shift(axis=1, fill_value=0)[['B', 'C']])

這主要是個壞主意,但如果這是您真正想要做的,您可以使用.iloc按數字尋址列並移動它們:

In [56]: df.iloc[0, 1:] = df.iloc[0, :-1].values

In [57]: df
Out[57]:
    A   B   C
0   3   3   2
1   4   5   6
2  10  20  30

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM