我想为导出到csv文件的数据添加日期列。幸运的是,文件由它们代表的日期标识。但是,我无法让列填满适当的用户输入值。这是我到目前为止的代码:
def read_file():
user_input = raw_input("Please put cost folder with date in form Costmm.dd: ")
path = r'C:\\Users\\CP\\documents\\' + user_input
allFiles = glob.glob(path + '/*.csv')
frame = pd.DataFrame()
frame['Date'] = pd.Series()
frame['Date'] = frame['Date'].astype(object).fillna(user_input)
list = []
for file in allFiles:
df = pd.read_csv(file,index_col=None,header=0)
list.append(df)
frame =pd.concat(list,ignore_index=True)
frame['Date'] = pd.Series()
return(frame)
非常感谢任何和所有帮助!
答案 0 :(得分:1)
如果我理解了以下内容之后你应该做些什么:
import datetime as dt
def read_file():
user_input = raw_input("Please put cost folder with date in form Costmm.dd: ")
path = r'C:\\Users\\CP\\documents\\' + user_input
allFiles = glob.glob(path + '/*.csv')
l = []
for file in allFiles:
df = pd.read_csv(file,index_col=None,header=0)
l.append(df)
frame =pd.concat(l,ignore_index=True)
frame['Date'] = dt.datetime.strptime(user_input, '%m.%d')
return frame
一些注意事项:
frame = pd.DataFrame()
frame['Date'] = pd.Series()
frame['Date'] = frame['Date'].astype(object).fillna(user_input)
上面的内容是多余的,因为你用pd.concat
的结果覆盖了它。
对于list
类型的变量名,请不要使用list
使用类似df_list
的内容。
要将字符串转换为日期时间,您可以使用dt.datetime.strptime
并传递格式字符串。