我只能找到将多个txt文件读取到一个数据帧的主题。但我希望将它们作为不同的数据帧( df1, df2, ... )
存储,然后将它们连接到一个数据帧。有没有快速的方法来做到这一点?更好的是,最快的方法是什么?这对我来说是一个重点。不应使用数据名称,它们在要查找的文件末尾具有格式(year.month.day.hour.minute.second)
无txt。先感谢您。
现在我只是阅读并放入一个文件:
f in glob.glob("path_in_dir"):
df = pd.read_table(f, delim_whitespace=True,
names=('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
dtype={'A': np.float32, 'B': np.float32, 'C': np.float32,
'D': np.float32,'E': np.float32, 'F': np.float32,
'G': np.float32,'H': np.float32})
all_data = all_data.append(df,ignore_index=True)
答案 0 :(得分:1)
重新考虑这种方法:我想将它们作为不同的数据帧(df1,df2 ...)存储,然后将它们连接起来。而是将每个相似的数据帧保存在更大的容器中,如列表或字典。这可以避免使用许多(可能是数百个)单独的对象充斥您的全局环境。
下面只有两个要维护的对象:1) df_dict ,其中键为 df1 , df2 ,...和2) all_data ,其中所有数据框元素都堆叠在一起。
df_dict = {}
for i, f in enumerate(glob.glob("path_in_dir")):
df_dict['df'+str(i+1)] = pd.read_table(f, delim_whitespace=True,
names=('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'),
dtype={'A': np.float32, 'B': np.float32, 'C': np.float32,
'D': np.float32,'E': np.float32, 'F': np.float32,
'G': np.float32,'H': np.float32})
# MASTER COMPILED DATAFRAME
all_data = pd.concat(df_dict.values(), ignore_index=True)
# FIRST THREE DATAFRAMES
df_dict['df1'] = ...
df_dict['df2'] = ...
df_dict['df3'] = ...
答案 1 :(得分:0)
您可以尝试以下方式:
while True:
exit_input = input("Are you sure you want to exit? Enter Y/N (YES/NO): ")
if (exit_input == 'Y'):
print("\nYou have successfully exited the program. Thank you! Have a great day! ")
break
elif (exit_input == 'N'):
run = menu()
break
else:
print("Invalid Input\n")
答案 2 :(得分:0)
我没有使用确切的数据结构,而是创建了几个虚拟文件来执行用例。
import pandas as pd
import glob
datasets = []
for f in glob.glob("<Path to folder>"):
df = pd.read_csv(f, sep=',', names=('Col1', 'Col2', 'Col3', 'Col4'), dtype={'Col1':str, 'Col2':int, 'Col3':float, 'Col4':str})
datasets.append(df)
all_data = pd.concat(datasets, ignore_index=True)
print(all_data.head())
您可以操作此代码以使代码正常工作。
谢谢