def Text2Col(df_File):
for i in range(0,len(df_File)):
with open(df_File.iloc[i]['Input']) as inf:
with open(df_File.iloc[i]['Output'], 'w') as outf:
i=0
for line in inf:
i=i+1
if i==2 or i==3:
continue
outf.write(','.join(line.split(';')))
以上代码用于将csv文件从文本转换为列。 这段代码使所有值变成字符串(因为split()),这对我来说是有问题的。 我尝试使用地图功能,但无法成功。
还有其他方法可以做到这一点。
我的输入文件有5列,第一列是字符串,第二列是int,其余都是浮点数。
我认为需要在最后一个声明中进行一些修改
outf.write(','.join(line.split(';')))
请让我知道是否需要其他输入。
答案 0 :(得分:1)
好的,尝试在这里提供帮助。如果这不起作用,请在您的问题中指定您丢失了什么或需要做的其他事情:
使用熊猫来read in a csv file:
import pandas as pd
df = pd.read_csv('your_file.csv')
如果第一行有标题,请使用:
import pandas as pd
df = pd.read_csv('your_file.csv', header=0)
如果您使用制表符定界符而不是逗号定界符,请使用:
import pandas as pd
df = pd.read_csv('your_file.csv', header=0, sep='\t')
答案 1 :(得分:0)
谢谢!
以下代码有效:
def Text2Col(df_File):
for i in range(0,len(df_File)):
df = pd.read_csv(df_File.iloc[i]['Input'],sep=';')
df = df[df.index != 0]
df= df[df.index != 1]
df.to_csv(df_File.iloc[i]['Output'])
File_List="File_List.csv"
df_File=pd.read_csv(File_List)
Text2Col(df_File)
输入文件以File_List.xls中提到的相同名称保存在同一文件夹中 输出文件将在同一文件夹中创建,并以列分隔。我删除了第0行和第1行以供使用。一个人可以根据自己的要求跳过或添加。 在上面的代码中df_file是数据帧,包含两列列表,第一列是输入文件名,第二列是输出文件名。