我想对 Python Dataframe 中的列进行切片和复制。我的数据框如下所示:
1928 1928.1 1929 1929.1 1930 1930.1
0 0 0 0 0 0 0
1 1 3 3 2 2 2
2 4 1 3 0 1 2
我想将其做成以下形式
1928 1928.1 1929 1929.1 1930 1930.1
0 0 0
1 1 3
2 4 1
3 0 0
4 3 2
5 3 0
6 0 0
7 2 2
8 1 2
这基本上意味着我想将“1929”、“1929.1”、“1930”、“1930.1”列中的值移动到“1928”和“1928.1”列下
同样,我将代码编写为
[In]x=2
y=2
b=3
c=x-1
for a in range(0,2):
df.iloc[b:(b+3),0:x]=df.iloc[0:3,x:(x+y)]
x=x+2
b=b+3
[In] df
[Out]
1928 1928.1 1929 1929.1 1930 1930.1
0 0 0 0 0 0 0
1 1 3 3 2 2 2
2 4 1 3 0 1 2
列内不会进行任何复制。我该如何修改我的代码?
最佳答案
设置
cols = ['1929', '1929.1', '1930', '1930.1']
vals = df[cols].values.reshape(-1, 2)
numpy.vstack
与 append
:
df[['1928', '1928.1']].append(
pd.DataFrame(
np.vstack([vals[::2], vals[1::2]]), columns = ['1928', '1928.1']
)
)
1928 1928.1
0 0 0
1 1 3
2 4 1
0 0 0
1 3 2
2 3 0
3 0 0
4 2 2
5 1 2
关于python - 复制 pandas 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50533522/