Python:从cdv读取特定列,然后重新排序

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

我有一个csv,我需要操纵和写回。 我只需要特定的列(带标题)并重新排序

我使用:

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