从 csv 文件中读取数据
你可以用read_csv函数来直接度csv文件,默认情况下,文件是用逗号分割字段。
import pandas as pd
data = pd.read_csv('../data/bikes.csv')
series = data['Defense'] # data['Defense'] = series
print(type(series))
data_frame = data[['Defense']] # data[['Defense']] = data frame
print(type(data_frame))
Series是一个一维的类似的数组对象,包含一个数组的数据(任何NumPy的数据类型)和一个与数组关联的数据标签(称作索引)。
一个Datarame表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集,它们每一个都可以有不同的类型值(数字,字符串,布尔等等)。Datarame有行和列的索引;它可以被看作是一个Series的字典(每个Series共享一个索引)。
与其它你以前使用过的(如 R 的 data.frame )类似Datarame的结构相比,在DataFrame里的面向行和面向列的操作大致是对称的。在底层,数据是作为一个或多个二维数组存储的,而不是列表,字典,或其它一维的数组集合。
修改列名
a.rename(columns={'A':'a', 'B':'b', 'C':'c'}, inplace = True)
特定值替换
替换表中全部或者某一行
df.replace(to_replace, value, inplace = True)
前面是需要替换的值,后面是替换后的值。
要改变源数据需要使用inplace = True
按条件替换
df = pd.DataFrame({'A': [10,11,12],'B': [20,21,22],'C': [30, 31, -32]})
df.loc[df.A >= 11, 'B'] = -1 #if-then在一列上(对一列进行修改值
df.loc[df.A >= 5, ['B', 'C']] = 88 #if-then分配给2列
df.loc[df.A < 12, ['B', 'C']] = 99
#df result1 result2 result3
A B C A B C A B C A B C
0 10 20 30 0 10 20 30 0 10 88 88 0 10 99 99
1 11 21 31 1 11 -1 31 1 11 88 88 1 11 99 99
2 12 22 -32 2 12 -1 -32 2 12 88 88 2 12 88 88
#第二种方法:
df.sex[df['sex']=='m']=1
df.sex[df['sex']=='f']=0