簡體   English   中英

熊貓read_csv向每行添加不必要的“”

[英]Pandas read_csv adds unnecessary “ ” to each row

我有一個csv文件

(我在這里顯示前三行)

HEIGHT,WEIGHT,AGE,GENDER,SMOKES,ALCOHOL,EXERCISE,TRT,PULSE1,PULSE2,YEAR
173,57,18,2,2,1,2,2,86,88,93
179,58,19,2,2,1,2,1,82,150,93

我正在使用pandas read_csv讀取文件並將其放入列中。

這是我的代碼:

import pandas as pd
import os
path='~/Desktop/pulse.csv'

path=os.path.expanduser(path)
my_data=pd.read_csv(path, index_col=False, header=None, quoting = 3, delimiter=',')
print my_data

問題是第一列和最后一列的值前后都有“”。

另外,我無法擺脫索引。

可能會犯一些愚蠢的錯誤,但是我感謝您的提前幫助

最終解決方案-使用replace轉換為int ,從列名中刪除"使用strip

df = pd.read_csv('pulse.csv', quoting=3)

df = df.replace('"','', regex=True).astype(int)
df.columns = df.columns.str.strip('"')
print (df.head())

   HEIGHT  WEIGHT  AGE  GENDER  SMOKES  ALCOHOL  EXERCISE  TRT  PULSE1  \
0     173      57   18       2       2        1         2    2      86   
1     179      58   19       2       2        1         2    1      82   
2     167      62   18       2       2        1         1    1      96   
3     195      84   18       1       2        1         1    2      71   
4     173      64   18       2       2        1         3    2      90   

   PULSE2  YEAR  
0      88    93  
1     150    93  
2     176    93  
3      73    93  
4      88    93  

index_col=False表示不強制讀取第一列以建立索引,但是數據幀始終需要一些索引,因此添加了默認值0,1,2... 所以這里可以省略。

header=None應該刪除,因為它會強制不要將第一行(csv的標題) DataFrame列。 然后,數據的第一行也是標題,數字值將轉換為字符串。

delimiter=','也應刪除,因為它與sep=','是默認參數相同。

@jezrael是正確的-熊貓數據框將始終添加索引。 這是有必要的。

嘗試使用類似df[0] = df[0].str.strip() ,將最后一列替換為零。

在執行此操作之前,請將您的csv轉換為數據pd.DataFrame.from_csv(path)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM