2024-04-26 21:24:54 发布
网友
我对python非常陌生,想知道如何在一个新的csv文件中将一列csv转换成多个列。脚本必须在源csv列中按一步一步迭代,滑动窗口为3或我想要的任何长度的窗口。在
因此,假设源csv在一列中包含数字1到10,滑动窗口为3,输出csv为: 第1列(1至3) 第2列(2至4) 第3列(3至5) 等等
很抱歉我是个菜鸟。在这个问题上任何帮助(我肯定很容易)将不胜感激。在
谢谢
正如您已经开始的,您可以使用pandas来完成您想要的。假设test.csv文件是一个没有标题的列,那么也可以使用header=None将第一行作为数据行导入。然后需要创建一个新的pandas Dataframe。然后,必须使用步骤3(您指定的步骤)迭代数据帧。在for循环中,必须将新列添加到新的Dataframe中。您可以选择df数据帧的第一列(这是唯一可用的列),并使用.iloc对数据帧进行切片,但是为了将新列放入新的数据帧中,必须使用reset_index重置选择索引并删除旧的索引。在
test.csv
header=None
df
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)
此代码生成以下数据帧:
出于某种原因,10似乎是一个浮点数。您可以使用astype函数绕过它。在
正如您已经开始的,您可以使用pandas来完成您想要的。假设
test.csv
文件是一个没有标题的列,那么也可以使用header=None
将第一行作为数据行导入。然后需要创建一个新的pandas Dataframe。然后,必须使用步骤3(您指定的步骤)迭代数据帧。在for循环中,必须将新列添加到新的Dataframe中。您可以选择df
数据帧的第一列(这是唯一可用的列),并使用.iloc对数据帧进行切片,但是为了将新列放入新的数据帧中,必须使用reset_index重置选择索引并删除旧的索引。在此代码生成以下数据帧:
^{pr2}$出于某种原因,10似乎是一个浮点数。您可以使用astype函数绕过它。在
相关问题 更多 >
编程相关推荐