如何使用熊猫复制行(列)的元素并粘贴到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) =1
,n(col2) =2
如果 n=2,n(col1) =3
,n(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行(另一列)?的主要内容,如果未能解决你的问题,请参考以下文章