我是python的新手,想知道如何将单列csv转换为新csv文件中的多列。该脚本必须以一个3的滑动窗口或我想要的任何长度的窗口一步一步地遍历源csv列。
因此,假设源csv在单列中包含数字1到10,且滑动窗口为3,则输出csv将为: 第1列(1到3) 第2栏(2到4) 第三栏(3至5) 等
很抱歉成为这样的菜鸟。在这个(我相信很简单)问题上的任何帮助将不胜感激。
谢谢
答案 0 :(得分:0)
开始后,您可以使用pandas完成所需的操作。假设test.csv
文件是没有标题的一列,您也可以使用header=None
将第一行作为数据行导入。然后,您需要创建一个新的熊猫Dataframe。之后,您必须使用3步(这是您指定的步长)遍历Dataframe。在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)
此代码将导致以下数据帧:
Column1 Column2 Column3 Column4
0 1 4 7 10.0
1 2 5 8 NaN
2 3 6 9 NaN
由于某种原因,10似乎是一个浮点数。您可以使用astype函数来解决它。