Bru*_*yne 2 python dataframe pandas
我.txt在一个文件夹中保存了多个文本 ( ) 文件。我正在尝试将它们全部组合成一个数据帧。到目前为止,我已经能够将它们结合起来,但不是以我想要的方式。
文本文件(命名yob####.txtwhere ####is a year)包含如下信息:
Jennifer,F,58376
Amanda,F,35818
Jessica,F,33923
Melissa,F,31634
Sarah,F,25755
Heather,F,19975
Nicole,F,19917
Amy,F,19834
Elizabeth,F,19529
Michelle,F,19122
Kimberly,F,18499
Angela,F,17970
Run Code Online (Sandbox Code Playgroud)
我试图打开每个文件,将年份添加到行的末尾,然后继续。
def main():
files = file_paths(FILE_FOLDER) # returns a list of file paths, i.e. ["C:\Images\file.txt","C:\Images\file2.txt", ...]
df = []
for file in files:
year = file.split("\\")[-1][3:7]
df.append(pd.read_table(file)+","+year)
big_df = pd.concat(df, ignore_index=True, axis=1)
big_df.to_csv("Combined.csv", header=False, index=False)
Run Code Online (Sandbox Code Playgroud)
这几乎有效......除了它需要每个文件并将数据放在一列中,下一个文件放在第二列中,下一个文件放在第三列中,等等。
预期的输出是相同的,除了在打开 1881 文件时,它将信息添加到1880. 然后1882追踪1881数据等。
read_table,默认分隔符假定为空格 ( sep='\t')。更改read_table为read_csv,这会推断出您的分隔符。或者,指定sep=','相同的效果。year,但您没有正确执行此操作。您可以使用assign将其添加到axis=0默认值),而不是水平连接。df_list = []
for file in files:
year = ...
df_list.append(pd.read_csv(file, header=None).assign(year=year))
big_df = pd.concat(df_list, ignore_index=True)
big_df.to_csv("Combined.csv", header=False, index=False)
Run Code Online (Sandbox Code Playgroud)