我已经在多个论坛和YouTube上找到了答案,但无济于事,如果广泛使用并且我的关键字不对,请提前抱歉。
我试图执行一个简单的pandas.read_csv(' .csv',sep =',')。但是我收到的输出并没有像我想象的那样将数据分成多列。
我在一行中找回所有标题,以逗号分隔。对于与各个标题绑定的每个订单项也是如此。
我尝试在数据框中设置此数据,操纵标题,手动添加标题但没有成功。
为了更好地理解我已经从Ipython笔记本中复制并粘贴了我所看到的内容:
In [15]:
import pandas as pd
pd.read_csv('C:\Users\Dale\Desktop\ShpData\TrackerTW0.csv',sep=',')
Out[15]:
PurchaseOrderNumber,ShipmentFinalDestinationCity,TransferPointCity,POType,PlannedMode,ProgramType,FreightPaymentTerms,ContainerNumber,BL/AWB#,Mode,ShipmentFinalDestinationLocation,CarrierSCAC,Carrier,Forwarder,BrandDesc,POLCity,PODCity,InDCOutlookDate,InDCOriginalDate,AnticipatedShipDate,PlannedStockedDate,ExFactoryActualDate(LT),OriginConsolActualDate(LT),DepartLoadPortActualDate(LT),FullOutGatefromOceanTerminal(CYorPort)ActualDate(LT),DPArrivalActualDate(LT),FreightAvailableActualDate(LT),DestConsolActualDate(LT),DomDepartActualDate(LT),YardArrivalActualDate(LT),CarrierDropActualDate(LT),InDCActualDate(LT),StockedActualDate(LT),Vessel,VesselETADischargePortCity,DPArrivalOutlookDate,VesselETADischargePortActualDate(LT),FullOutGatefromOceanTerminal(CYorPort)OutlookDate,StockedOutlookDate,ShipmentLeg#,Metrics,TotalShippedQty
0 1251708,Rugby,Tuticorin,Initial Order,Ocean,Re...
1 1262597,Rugby,Hong Kong,Initial Order,Ocean,Re...
由于
答案 0 :(得分:2)
你可能想尝试这个,你有40列。
import pandas as pd
df = pd.read_csv('input.csv', names=['PurchaseOrderNumber','ShipmentFinalDestinationCity','TransferPointCity','POType','PlannedMode','ProgramType','FreightPaymentTerms','ContainerNumber','BL/AWB#','Mode','ShipmentFinalDestinationLocation','CarrierSCAC','Carrier','Forwarder','BrandDesc','POLCity','PODCity','InDCOutlookDate','InDCOriginalDate','AnticipatedShipDate','PlannedStockedDate','ExFactoryActualDate(LT)','OriginConsolActualDate(LT)','DepartLoadPortActualDate(LT)','FullOutGatefromOceanTerminal(CYorPort)ActualDate(LT)','DPArrivalActualDate(LT)','FreightAvailableActualDate(LT)','DestConsolActualDate(LT)','DomDepartActualDate(LT)','YardArrivalActualDate(LT)','CarrierDropActualDate(LT)','InDCActualDate(LT)','StockedActualDate(LT)','Vessel','VesselETADischargePortCity','DPArrivalOutlookDate','VesselETADischargePortActualDate(LT)','FullOutGatefromOceanTerminal(CYorPort)OutlookDate','StockedOutlookDate','ShipmentLeg#','Metrics','TotalShippedQty']
print df
答案 1 :(得分:1)
最近,我想处理一个csv文件,代码如下:
data = pd.read_csv(dir, sep=" ")
print(data)
输出还将所有值放在一行中, 然后我只使用默认的“ sep”值,问题就解决了。
data = pd.read_csv(dir, sep=",")
情况似乎与质询者提出的不同, 但我希望它对像我这样的其他朋友有帮助, 这是我的第一个评论,希望它还不错!
答案 2 :(得分:0)
它可能不是最好的选择,但它可以起作用!
按原样读取文件:
df = pd.read_csv('input.csv')
获取所有列名并将其分配给变量。
names= df.columns.str.split(',').tolist()
用','分隔所有值
df= df.iloc[:,0].str.split(',', expand=True)
最后,将“名称”分配给列名就可以了!
df.columns = names