我没有得到预期的输出。
我正在尝试将CSV转换为数据帧,但是它不起作用:
$('.AddSubMenu123').select2({
placeholder: 'select one',
allowClear: true,
ajax: {
url: '/SubMenu/GetSubMenuList',
dataType: 'json',
data: function(params) {
return {
prefix: params.term,
}
},
processResults: function(data) {
return {
results: $.map(data, function(item) {
return {
id: item.val,
text: item.label,
}
})
};
}
},
});
});
这是我的CSV文件示例:
“帐户编号,名称,商品代码,类别,数量,单价,网价,日期”
“ 093356,Waters-Walker,AS-93055,衬衫,5,82.68,413.40,2013-11-17 20:41:11”
“ 659366,Waelchi-Fahey,AS-93055,衬衫,18,99.64,1793.52,2014-01-03 08:14:27”
“ 563905,”“ Kerluke,Reilly和Bechtelar” ,AS-93055,衬衫,17,52.82,897.94,2013-12-04 02:07:05“
“ 995267,Cole-Eichmann,GS-86623,Shoes,18,15.28,275.04,2014-04-09 16:15:03”
“ 524021,Hegmann and Sons,LL-46261,Shoes,7,78.78,551.46,2014-06-18 19:25:10”
“ 929400,”“ Senger,Upton和Breitenberg”“ ,LW-86841,鞋子,17,38.19,649.23,2014-02-10 05:55:56”
请查看CSV文件中用“”括起来的粗体字符
答案 0 :(得分:0)
这是我的建议:
df = pd.read_csv('file.csv')
col_name = 'account_number,name,item_code,category,quantity,unit price,net_price,date'
z = pd.concat([df[col_name].str.split(r'(,(?=\S)|:)', expand=True)], axis=1)
z['date'] = z[14]+z[15]+z[16]+z[17]+z[18]
z = z.drop(columns=[1,3,5,7,9,11,13, 14,15,16,17,18])
z.columns = col_name.split(',')
此正则表达式r'(,(?=\S)|:)'
至关重要-逗号但不紧跟空格,但是我不知道为什么它也在:
上分开。如果可以解决,则无需手动设置日期。
输出:
account_number ... date
0 093356 ... 2013-11-17 20:41:11
1 659366 ... 2014-01-03 08:14:27
2 563905 ... 2013-12-04 02:07:05
3 995267 ... 2014-04-09 16:15:03
4 524021 ... 2014-06-18 19:25:10
5 929400 ... 2014-02-10 05:55:56