将一列csv数据转换为具有多个列的新csv文件

2024-04-26 21:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python非常陌生,想知道如何在一个新的csv文件中将一列csv转换成多个列。脚本必须在源csv列中按一步一步迭代,滑动窗口为3或我想要的任何长度的窗口。在

因此,假设源csv在一列中包含数字1到10,滑动窗口为3,输出csv为: 第1列(1至3) 第2列(2至4) 第3列(3至5) 等等

很抱歉我是个菜鸟。在这个问题上任何帮助(我肯定很容易)将不胜感激。在

谢谢


Tags: 文件csv脚本数字中将陌生菜鸟
1条回答
网友
1楼 · 发布于 2024-04-26 21:24:54

正如您已经开始的,您可以使用pandas来完成您想要的。假设test.csv文件是一个没有标题的列,那么也可以使用header=None将第一行作为数据行导入。然后需要创建一个新的pandas Dataframe。然后,必须使用步骤3(您指定的步骤)迭代数据帧。在for循环中,必须将新列添加到新的Dataframe中。您可以选择df数据帧的第一列(这是唯一可用的列),并使用.iloc对数据帧进行切片,但是为了将新列放入新的数据帧中,必须使用reset_index重置选择索引并删除旧的索引。在

import pandas as pd

df = pd.read_csv('test.csv', header=None)
new_df = pd.DataFrame()

index = 1
for i in range(0, len(df), 3):
    new_df['Column' + str(index)] = df[0].iloc[i:i+3].reset_index(drop=True)
    index += 1

print(new_df)

此代码生成以下数据帧:

^{pr2}$

出于某种原因,10似乎是一个浮点数。您可以使用astype函数绕过它。在

相关问题 更多 >