我正在使用以下代码。我的所有CSV文件都具有统一的结构。形成数据框时,它在我的CSV中包含两列日期。
在结果数据框中,对于少数行,日期值在第一个日期列中,而对于其余数据,它将转到第二个日期列。
任何想法,为什么要为源CSV文件中的一列生成两列(日期列)。
all_data = pd.DataFrame()
for f in glob.glob("/Users/tcssig/Desktop/Files/*.csv"):
df = pd.read_csv(f)
all_data = all_data.append(df,ignore_index=True)
In [76]: all_data.columns
Out[76]: Index(['0', '0.1', 'Channel_ID', 'Date', 'Date ', 'Duration (HH:MM)','Episode #', 'Image', 'Language', 'Master House ID', 'Parental Rating','Program Category', 'Program Title', 'StartTime_ET', 'StartTime_ET2','Synopsis'],
dtype='object')
答案 0 :(得分:5)
因为第二列中有空格:
'Date', 'Date '
^
所以你需要在追加
之前规范化列all_data = pd.DataFrame()
for f in glob.glob("/Users/tcssig/Desktop/Files/*.csv"):
df = pd.read_csv(f)
df.columns = df.columns.str.strip()
all_data = all_data.append(df,ignore_index=True)
这里我使用str.strip
删除任何前导和尾随空格