将单列CSV数据转换为具有多列的新CSV文件

时间:2018-09-25 12:36:51

标签: python csv

我是python的新手,想知道如何将单列csv转换为新csv文件中的多列。该脚本必须以一个3的滑动窗口或我想要的任何长度的窗口一步一步地遍历源csv列。

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

很抱歉成为这样的菜鸟。在这个(我相信很简单)问题上的任何帮助将不胜感激。

谢谢

1 个答案:

答案 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函数来解决它。