DataFrame是一个表格型的数据结构,既有行索引(保存在index)又有列索引(保存在columns)。
代码结果:
(4, 4) values属性也会以二维ndarray的形式返回DataFrame的数据: df2.values代码结果:
array([[2018, 'Guangdong', 1.3, nan], [2018, 'Beijing', 2.5, nan], [2018, 'Qinghai', 1.1, nan], [2018, 'Fujiang', 0.7, nan]], dtype=object) 列索引会作为DataFrame对象的属性: df2.Province代码结果:
English one Guangdong two Beijing three Qinghai four Fujiang Name: Province, dtype: object代码结果:
Province year 2018 Province Guangdong pop 1.3 debt NaN Name: one, dtype: object df2.loc['one':'three'] 代码结果: ProvinceyearProvincepopdebtEnglishone2018Guangdong1.3NaNtwo2018Beijing2.5NaNthree2018Qinghai1.1NaN 还可以获取单值: df2.loc['one','Province']代码结果:
'Guangdong' DataFrame的列可以通过赋值(一个值或一组值)来修改: df2["debt"]=np.arange(2,3,0.25) df2 代码结果: ProvinceyearProvincepopdebtEnglishone2018Guangdong1.32.00two2018Beijing2.52.25three2018Qinghai1.12.50four2018Fujiang0.72.75 为不存在的列赋值会创建一个新的列,可通过del来删除: df2['eastern']=df2.Province=='Guangdong' df2 代码结果: ProvinceyearProvincepopdebteasternEnglishone2018Guangdong1.32.00Truetwo2018Beijing2.52.25Falsethree2018Qinghai1.12.50Falsefour2018Fujiang0.72.75False del df2['eastern'] df2.columns代码结果:
Index(['year', 'Province', 'pop', 'debt'], dtype='object', name='Province') 当然,还可以转置: df2.T EnglishonetwothreefourProvinceyear2018201820182018ProvinceGuangdongBeijingQinghaiFujiangpop1.32.51.10.7debt22.252.52.751 二维数组
df3=pd.DataFrame(np.random.randint(0,10,(4,4)),index=[1,2,3,4],columns=['A','B','C','D']) df3 代码结果: ABCD198462577436302446982 字典
行索引由index决定,列索引由字典的键决定
dict1代码结果:
{'Province': ['Guangdong', 'Beijing', 'Qinghai', 'Fujiang'], 'pop': [1.3, 2.5, 1.1, 0.7], 'year': [2018, 2018, 2018, 2018]} df4=pd.DataFrame(dict1,index=[1,2,3,4]) df4 代码结果: Provincepopyear1Guangdong1.320182Beijing2.520183Qinghai1.120184Fujiang0.720183 结构数组
其中列索引由结构数组的字段名决定
arr=np.array([('item1',10),('item2',20),('item3',30),('item4',40)],dtype=[("name","10S"),("count",int)]) df5=pd.DataFrame(arr) df5 代码结果: namecount0b’item1’101b’item2’202b’item3’303b’item4’40 此外可以调用from_开头的类方法,将特定的数据转换为DataFrame对象。例如from_dict(),其orient参数指定字典键对应的方向,默认为”columns”: dict2={"a":[1,2,3],"b":[4,5,6]} df6=pd.DataFrame.from_dict(dict2) df6 代码结果: ab014125236 df7=pd.DataFrame.from_dict(dict2,orient="index") df7 代码结果: 012a123b456代码结果:
{0: {'a': 1, 'b': 4}, 1: {'a': 2, 'b': 5}, 2: {'a': 3, 'b': 6}} df7.to_dict(orient="records")代码结果:
[{0: 1, 1: 2, 2: 3}, {0: 4, 1: 5, 2: 6}] df7.to_dict(orient="list")代码结果:
{0: [1, 4], 1: [2, 5], 2: [3, 6]} 类似的还有to_records()、to_csv()等谢谢大家的浏览, 希望我的努力能帮助到您, 共勉!