Python:从cdv读取特定列,然后重新排序
我有一个csv,我需要操纵和写回。 我只需要特定的列(带标题)并重新排序 我使用:Python:从cdv读取特定列,然后重新排序,python,pandas,Python,Pandas,我有一个csv,我需要操纵和写回。 我只需要特定的列(带标题)并重新排序 我使用: fields = ['Ticket Number', 'Created', 'Closed', 'CustomerID', 'Customer Realname'] df = pd.read_csv('args.inname', sep=',', skipinitialspace=True, usecols=fields, columns='Created', 'Ticket Number', 'Cust
fields = ['Ticket Number', 'Created', 'Closed', 'CustomerID', 'Customer Realname']
df = pd.read_csv('args.inname', sep=',', skipinitialspace=True, usecols=fields, columns='Created', 'Ticket Number', 'Customer Realname', 'CustomerID', 'Closed')
df = df.rename(columns={'Ticket Number': 'CaseNumber', 'Created': 'CreationDate', 'Closed': 'ClosedDate', 'CustomerID': 'EndCustomerEmail', 'Customer Realname': 'EndCustomerName'})
但是它抛出了一个错误
SyntaxError:位置参数跟在关键字参数后面
就在我用“column=”展开的第二行之后,阅读后立即重新排序
我确信我在这里遗漏了一些明显的东西,但找不到。试试这个:
# specify your columns in the order you want to have it in the ouptut file
fields = ['Ticket Number', 'Created', 'Closed', 'CustomerID', 'Customer Realname']
df = pd.read_csv('args.inname', sep=',', skipinitialspace=True, usecols=fields)[fields]
df = df.rename(columns={'Ticket Number': 'CaseNumber', 'Created': 'CreationDate', 'Closed': 'ClosedDate', 'CustomerID': 'EndCustomerEmail', 'Customer Realname': 'EndCustomerName'})
参数
列
应命名为名称
,它需要一个列表:名称=['Created'、'Ticket Number'、'Customer Realname'、'CustomerID'、'Closed']
@MaxU也尝试过,但得到了回溯(最近一次调用):文件“”,第1行,类型错误:parser\u f()得到一个意外的关键字参数“columns”,我已编辑了我的上一个。post-请检查…@f0rd42,因为您已经通过usecols
选择了列的子集,所以这里不需要names
arg。@NickilMaveli,这样OP可以设置缺少的列名,并一步选择感兴趣的列名。但在这种情况下,他必须指定header=None
,所以我有点困惑…已经尝试过了(在“fields=”中指定顺序,但顺序是原始文件顺序,因此仅选择列,但从原始输入中获取顺序)file@f0rd42,请注意pd.read\u csv(…)中的[字段]
[字段]
我用pandas读取日期列,格式为:YYYY-MM-DD hh:MM:ss,但只需要yyy-MM-DD在所有行中跳出hh:MM:ss的最佳和最简单的方法是什么?@f0rd42,您可以尝试以下方法:df['date\u col\u name']=df['date\u col\u name'].dt.date
-如果它是datetime
dtypedf.dtypes显示它是一个“对象”类型,那么它应该可以工作,尽管我尝试使用parse_dates=True读取csv