如何使用熊猫复制行(列)的元素并粘贴到csv中的第1行(另一列)?

Posted

技术标签:

【中文标题】如何使用熊猫复制行(列)的元素并粘贴到csv中的第1行(另一列)?【英文标题】:How to copy element of a row (of a column) and paste to row-1 (of another column) in csv, using pandas? 【发布时间】:2020-03-19 05:17:06 【问题描述】:

我正在使用 pandas 制作一个 csv 文件,其中一些列已经有了它的数据。例如它看起来像这样

col1   col2
   1     2
   3     4
   5     6
   7     8

让我们调用 n - 列的行位置,

如果 n=1,n(col1) =1n(col2) =2

如果 n=2,n(col1) =3n(col2) =4

等等

现在我想添加 col3 和 col4,它看起来像这样

col1   col2   col3   col4
   1     2
   3     4
   5     6
   7     8

我想用n(col3)=1 将n=2 时col1 的值写入col3,将n=2 时col2 的值用n(col4)=1 写入col4,依此类推。它看起来像这样

col1   col2   col3   col4
    1     2      3      4
    3     4      5      6  
    5     6      7      8
    7     8      9     10

我正在用python写一个不完整的代码

import pandas
result = pandas.read_csv('csvfile.csv')
n = 0
for n in range (0,25):
    a = result.loc[n, 'col1']

请帮忙。谢谢。

【问题讨论】:

【参考方案1】:

使用DataFrame.shift,但缺少最后一行值:

df[['col3','col4']] = df[['col1','col2']].shift(-1)
print (df)
   col1  col2  col3  col4
0     1     2   3.0   4.0
1     3     4   5.0   6.0
2     5     6   7.0   8.0
3     7     8   NaN   NaN

如果想替换它们,例如0:

df[['col3','col4']] = df[['col1','col2']].shift(-1, fill_value=0)
print (df)
   col1  col2  col3  col4
0     1     2     3     4
1     3     4     5     6
2     5     6     7     8
3     7     8     0     0

【讨论】:

以上是关于如何使用熊猫复制行(列)的元素并粘贴到csv中的第1行(另一列)?的主要内容,如果未能解决你的问题,请参考以下文章

从两个熊猫系列(csv的列作为DataFrame)创建元素字典

如何使用熊猫在特定列中的csv文件中查找特定单词

如何从熊猫中获取整行数据

如何更新python中熊猫数据框特定列中的所有行?

如何根据列表中的项目复制熊猫中的行[重复]

如何(重新)命名熊猫数据框中的空列标题而不导出到csv