您好我已经迭代了多个列并且它有效。但是所有CSV文件中的列名都按顺序排列:
Output: id title content tags
但是我的代码按此顺序输出列:
Output : content id tags title
如何按照所有csv文件将其作为
的顺序取回这是我的代码:
import glob
import os
import pandas as pd
pd.set_option("display.max_rows", 999)
pd.set_option('max_colwidth',100)
import numpy as np
from IPython.display import display
%matplotlib inline
file_path = 'data/'
all_files = glob.glob(os.path.join(file_path, "*.csv"))
merging_csv_files = (pd.read_csv(f) for f in all_files)
stack_exchange_data = pd.concat(merging_csv_files, ignore_index=True)
print ("Data loaded succesfully!")
print ("Stack Exchane Data has {} rows with {} columns each.".format(*stack_exchange_data.shape))
答案 0 :(得分:1)
选择具有特定顺序列的DataFrame的一般方法是简单地创建所需顺序的列表,然后将该列表传递给DataFrame的括号运算符,如下所示:
my_col_order = ['id', 'title', 'content', 'tags']
df[my_col_order]
此外,您可能需要检查所有DataFrame确实具有相同的列顺序。我不相信Pandas会对concat
中的列名进行排序,除非至少有一个DataFrame具有不同的列排序。您可能希望打印出要连接的所有DataFrame中的所有列名称。