![](/img/trans.png)
[英]Pandas: reformatting CSV data from single column into multiple new columns
[英]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.