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 中的复制和粘贴功能吗?例如我想复制粘贴第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。
那么有没有一种方法可以做一些类似于在 excel 中复制粘贴到 python 中的事情(简单地阻止一系列数据,复制它们并将它们粘贴到另一个现有数据之上) ?谢谢
这在大多数情况下感觉像是个坏主意,但如果这是您真正想要做的,您可以使用 .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
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_value
到 shift
以保留整数 dtype
df.update(df.shift(axis=1, fill_value=0)[['B', 'C']])
我有如下数据框
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 中的复制和粘贴功能吗?例如我想复制粘贴第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。
那么有没有一种方法可以做一些类似于在 excel 中复制粘贴到 python 中的事情(简单地阻止一系列数据,复制它们并将它们粘贴到另一个现有数据之上) ?谢谢
这在大多数情况下感觉像是个坏主意,但如果这是您真正想要做的,您可以使用 .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
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_value
到 shift
以保留整数 dtype
df.update(df.shift(axis=1, fill_value=0)[['B', 'C']])