我正在做一个程序,它可以分析很多csv文件。 目前,我正在手动声明每一项,但正如您在我的代码中看到的,我实际上只是在路径和变量名中使用+1。 我想我可以用一个循环来简化它,只是不知道如何使用路径名
我的代码:
import pandas as pd
import numpy as np
### declation ###
df_primes1 = pd.DataFrame()
df_primes1 = np.array(df_primes1)
df_search1 = pd.DataFrame()
df_primes2 = pd.DataFrame()
df_primes2 = np.array(df_primes2)
df_search2 = pd.DataFrame()
df_primes3 = pd.DataFrame()
df_primes3 = np.array(df_primes3)
df_search3 = pd.DataFrame()
searchterm = '322'
### reads csv in numpy array ###
df_primes1 = pd.read_csv('1/1_Primes_32.csv', delimiter=';', header=None, names='1')
df_primes2 = pd.read_csv('1/2_Primes_32.csv', delimiter=';', header=None, names='2')
df_primes3 = pd.read_csv('1/3_Primes_32.csv', delimiter=';', header=None, names='3')
### sorts prime numbers ###
#df_sorted = df_primes1.sort_values(by='n')
#print(df_sorted)
### searches for number with "searchterm" as start value ###
df_search1 = df_primes1[df_primes1['1'].astype(str).str.startswith(searchterm)]['1']
df_search2 = df_primes2[df_primes2['2'].astype(str).str.startswith(searchterm)]['2']
df_search3 = df_primes3[df_primes3['3'].astype(str).str.startswith(searchterm)]['3']
print(df_search1)
print(df_search2)
print(df_search3)
程序正在运行,我只是想知道如何简化它,因为像这样的文件还会有20多个
IIUC,我们可以使用pathlib和dict理解:
要分解每个项目
p
是保存CSV的目标文件夹i
是一个枚举器,用于循环您的文件。您很可能需要添加一个对CSV排序的预步骤,以获得所需的顺序file
是从生成器对象返回的每个项。我们将每个值转换为一个数据帧您可以按集合筛选每个数据帧,即
这将返回一个数据帧
相关问题 更多 >
编程相关推荐