基础操作
dataframe 类似于csv 与SQL表
方法1
import codecademylib
import pandas as pd
df1 = pd.DataFrame({
'Product ID': [1, 2, 3, 4],
'Product Name': ['t-shirt', 't-shirt', 'skirt', 'skirt'],
'Color': ['blue', 'green', 'red', 'black']
})
print(df1)
方法2
import codecademylib
import pandas as pd
df2 = pd.DataFrame([
[1, 'San Diego', 100],
[2, 'Los Angeles', 120],
# Fill in rows 3 and 4
[3,'San Francisco' , 90],
[4 ,'Sacramento', 115]
],
columns=[
'Store ID','Location','Number of Employees'
])
print(df2)
import pandas as pd
orders = pd.read_csv('orders.csv')
print(orders)
df.head(n)查看前n个数据
df.info()查看dataframe数据
import codecademylib
import pandas as pd
df = pd.read_csv('imdb.csv')
df.head(10)
print(df.info())
1.选择某一列的两种方式
x=dataframe.column_name 返回某一列的数据 注意:列名中间有空格无法这么选择
x=dataframe['column_name']
clinic_north = df.clinic_north
clinic_north = df['clinic_north']
2.选择多列
x=dataframe[['column_name1','column_name2']] 返回两列数据
clinic_north_south = df[['clinic_north','clinic_south']]
3. 选择行
x=dataframe.iloc[n] 返回第n行的数据
4.选择多行
x=df.iloc[n:m] 返回第n至m-1行数据 从0开始算
x=df[n:m] 效果一样
df2 = df.loc[[1, 3, 5]]
df3=df2.reset_index(inplace=True,drop=True)
print(df2)
这时候选出来的是带index的
如果使用 .reset_index(drop,inplace)可以重置index 使用drop 消除 ,inplace 可以选择是返回一个新dataframe还是在原dataframe上修改
5.选择逻辑运算
x=df[df.column 运算符 条件]]
例子:
返回所有月份为1月的行
january = df[df.month == 'January']
返回3月和4月的行
march_april=df[(df.month=='March')|(df.month=='April')]
返回一二三月的行
january_february_march=df[df.month.isin([ 'January','February', 'March'])]
print(january_february_march)
添加整列
1.df['column_name']=[x,x,x,x,x] 分别添加
2.df['column_name'] = x 整列都相同
3.df['column_name']=df['exist_column_name']操作
df['Sold in Bulk?']=['Yes','Yes','No','No']
df['In Stock?'] = True
df['Revenue'] = df.['Price'] - df['Cost to Manufacture']
有时候列名取得不好中间有空格无法使用df.column_name 只能使用df['column_name']
所以要更改列名
1.df.columns 方法
df = pd.DataFrame({
'First Name': ['John', 'Jane', 'Sue', 'Fred'],
'Age': [23, 29, 21, 18]
})
df.columns = ['name', 'age']
2.df.rename 方法 rename中间转换是:
df = pd.DataFrame({
'First Name': ['John', 'Jane', 'Sue', 'Fred'],
'Age': [23, 29, 21, 18]
})
df.rename(columns={
'First Name':'name',
'Age': 'age'},
inplace=True)