繁体   English   中英

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

[英]Turning a single column of csv data into a new csv file with multiple columns

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

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

很抱歉成为这样的菜鸟。 对此问题的任何帮助(我相信很容易)将不胜感激。

谢谢

在开始时,您可以使用熊猫来完成所需的工作。 假设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函数解决它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM