在我的代码中,csv编写器正在向CSV文件写入一些不现实的值。
我的目标是读取一个目录中的所有csv文件,并在任何特定列上放置过滤器,然后将过滤后的 Dataframe 写入合并的csv文件。
我可以在VS控制台中获得所需的输出,但无法将它们写入csv文件。
请帮助了解我做错了什么。
这是我的示例输入:
这是我得到的输出:
代码:
import pandas as pd
import os
import glob
import csv
from pandas.errors import EmptyDataError
# use glob to get all the csv files
# in the folder
path = os.getcwd()
#print(path)
csv_files = glob.glob(os.path.join(path, "*.csv"))
print(csv_files)
col_name = input("Enter the column name to filter: ")
print(col_name)
State_Input = input("Enter the {} ".format(col_name) )
print(State_Input)
df_empty = pd.DataFrame()
for i in csv_files:
try:
df = pd.read_csv(i)
#print(df.head(5))
State_Filter = df["State"] == State_Input
print(df[State_Filter])
df_child = (df[State_Filter])
with open('D:\\PythonProjects\\File-Split-Script\\temp\\output\\csv_fil111.csv', 'w') as csvfile:
data_writer = csv.writer(csvfile, dialect = 'excel')
for row in df_child:
data_writer.writerows(row)
except EmptyDataError as e:
print('There was an error in your input, please try again :{0}'.format(e))
1条答案
按热度按时间8hhllhi21#
使用
pd.to_csv
一次写入文件。首选将过滤后的 Dataframe 存储到列表中,然后将它们连接到一个新的 Dataframe 中: