一、问题描述
1、 从 NumPy 数组创建 DataFrame,产生一个6行4列,取值范围在1~19之间的整数数组。
2、从字典对象data创建DataFrame
1) 展示前3行
2) 取出animal和age列
3) 取出索引为[3, 4, 8]行的animal和age列
4) 取出age值大于3的行
5) 取出age值缺失的行
6) 取出age在2,4间的行(不含2和4)
7) f行的age改为1.5
二、问题解答
1、
代码如下
import pandas as pd
import random
import numpy as np
arr=np.random.randint(1,20,(6,4))
print(arr)
dates = pd.date_range('today',periods=6)
d=pd.DataFrame(arr,index=dates,columns=list('ABCD'))
print(d)
运行截图:
2、
代码如下
import pandas as pd
import numpy as np
arr=['a','b','c','d','e','f','g']
d={'animal':pd.Series(['cat','cat','snake','dog','dog','cat','snake','cat','dog','dog']),
'age': pd.Series([2.5,3.0,0.5,np.nan,5.0,2.0,4.5,np.nan,7.0,3.0]),
'visits': pd.Series([1,3,2,3,2,3,1,1,2,1]),
'priority': pd.Series(['yes','yes','no','yes','no','no','no','yes','no','no'])}
df=pd.DataFrame(d)
df.index=list('abcdefghij')
print(df)
print("(1)展示前三行")
print(df.head(3))
print("(2)取出animal和age列")
print(df[['animal','age']])
print("(3)取出索引为[3,4,8]行的animal和age列")
df_1=df[['animal','age']]
print(df_1.iloc[[2,3,7]])
print("(4)取出age值大于3的行")
df_2=df[df['age']>3]
print(df_2)
print("(5)取出age值缺失的行")
df_3=df[np.isnan(df['age'])]
print(df_3)
print("(6)取出age在2,4间的行")
print(df[df['age'].between(2, 4)])
print("(7)f行的age改为1.5")
df.loc['f']=1.5
print(df)
运行截图: