python - 复制 pandas 数据框中的列

标签 python python-3.x python-2.7 pandas dataframe

我想对 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.vstackappend:

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/

相关文章:

python - 使用 Paramiko 在命令内传递 Python 变量

python - "cannot find vcvarsall.bat"错误后 pip 的 MinGW 编译器,仍然无法正常工作

python - 如何在 Heroku 中运行 Docker 容器

python - 即使 dataFrame 为空,也将 headers 保留在 groupby 过滤中

python-3.x - 冒泡排序大大优于选择排序

python-3.x - PyQt : How do you clear focus on startup?

python - 将 c++ vector 传递给 python 并返回

python - Pandas - 按字符串重新排序列包含概念并在它们之间进行比较

Python-删除字符串中最后一个字母之前的所有字符

python - 与 HTMLParser 属性混淆