pandas的DataFrame如何定义?定义DataFrame的几种方式
发布于 作者:苏南大叔 来源:程序如此灵动~

继续说说科学计算类库pandas
的使用方式,大家都已经知道:pandas
的数据构成是:dataframe
和series
。对比excel
的话,dataframe
就像是一张表,series
就像是一列数据。那么,一个dataframe
是如何定义的呢?这就是本文中要讨论的问题。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码之间的故事。本文描述pandas
的dataframe
的定义方式。测试环境:python@3.6.8
,pandas@1.1.5
。
定义方式一(以每列数据为主要视角)
这种定义方式,把每列的名称写在了数据前面,比较直观。
或者

这种pd.DataFrame({:[]})
的方式,其实可以理解为一个强制类型转换,{:[]}
是个dict
类型,而其中的[]
又是个list
类型。可以参考下面的定义方式:
这个时候,如果要定义index
的话(columns
被隐式的定义了),也是可以的:
定义方式二(以每行数据为主要视角)【推荐】
这种定义方式,使人们更聚焦于每行数据,而不是每列数据。
实际上也可以定义index
索引名字,而不是默认的0,1,2...
等。

值得注意的是:index
和columns
后面传递的实参,可以是个tuple
,也可以是个list
。所以下面的定义也是可以的:
其实就是[]
和()
的变化!!!!!!!
实际上这里省略了一个参数data=
,比如:
定义方式三
其实这种方式最好理解:
输出:
可以继续设置列名行名:
输出:
代码的整体结果相当于:
定义方式四
关于[]
和()
从实际效果上来看,就定义dataframe
这件事情上来说,[]
和()
没有太大区别。
依然可以正确执行。
参考文献
总结
这几种方式,定义出来的数据是一样的结果。个人更加喜欢第二种定义方式,认为其更加直观一些。
本文还可以得出另外一个结论,list/[]
和tuple/()
在很多情况下,都是一样一样的使用。tuple
是list
的冷冻版本(不可修改不可排序)。
更多pandas
的使用方式,请参考:


