我要投稿 如果你有好的文章,欢迎分享给我们,我们会给与适当的补贴

python读取csv文件的某一列或某几列

读取csv某一列数据

import csv
import pandas as pd

with open('test.csv','r') as f:
    reader = csv.reader(f)
    column = [row[1] for row in reader]
    print(column)

按照列属性进行读取

import pandas as pd
datas = pd.read_csv('test.csv',usecols=['name','price','num'])
print(datas)

按照列属性读取数据前十行

import pandas as pd
datas = pd.read_csv('test.csv',usecols=['name','price','num'],nrows=10)
print(datas)

Python读取整个文件之后,读取特定的行,或者列

import pandas as pd
import numpy as pn
df = pd.read_csv('apapay11.csv', header=None,  sep=',')
#读取第一行
print(df.iloc[0])
#读取第一列
print(df.iloc[:0])
#读取第四到第十行
df[3:10]
#前两列
print(df.iloc[:,:2])
import pandas as pd

df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8',header=None)
# print(type(df))
df.columns = ['a','b','c','d','e','f']

# 只取一列
# col_data_1 = df['a']   # 单独一列是个series
# col_data_2 = df.loc[:,'a']   # 同上,但比较复杂,一般不用
# col_data_3 = df.iloc[:,0]    # 同上,可以在不知道列名的时候用
#
# col_data_4 = df[['a']]  # 单独一列是个df
# col_data_5 = df.loc[:,['a']]    # 同上,但比较复杂,一般不用
# col_data_6 = df.iloc[:,[0]]     # 同上,可以在不知道列名的时候用
# print(col_data_4)

# 获取指定的几列
# cols_data_1 = df[['a','b']]    # DataFrame, 指定某几列,直接用列名
# cols_data_2 = df.loc[:,['a','b']]   # 同上,但比较复杂,一般不用
# cols_data_3 = df.iloc[:,[0,2]]     # 同上,可以在不知道列名的时候用
# print(cols_data_1)

# 获取指定的连续列
# cols_data_4 = df.loc[:,'a':'d']  # 指定连续列,用列名
# cols_data_5 = df.iloc[:,0:4]    # 指定连续列,用数字
# print(cols_data_4)

二、不读取整个文件,读取特定的行与列将男性(m)替换为1,女性(f)替换为0

df.ix[df['sex']=='f','sex']=0
df.ix[df['sex']=='m','sex']=1

方法二

df.sex[df['sex']=='m']=1
df.sex[df['sex']=='f']=0  

Add a Comment

Your email address will not be published. Required fields are marked *