列表(list)和数据框(pd.DataFrame)两者的区别有哪些?

区别一:

Python 内置函数 id() 返回对象的唯一标识符(CPython中为对象的内存地址)不同

list_i=[1,2,3,4]
print(list_i)
print(id(list_i))
list_i.append(5)
print(list_i)
print(id(list_i))

import pandas as pd
data=[[110,105,99],[105,88,115],[109,120,130]]
index=[1,2,3]
columns=['语文','数学','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(id(df))
new=df.mean()
df2=pd.DataFrame(data=data,index=index,columns=columns)
df2=df.append(new,ignore_index=True)
print(id(df2))

区别二:

列表(list)只能添加一个元素

数据框(pd.DataFrame)可以添加多个元素,添加格式为df.append([ ])

list_y=[1,2,3,4]
list_y.append([5,6])       #添加的元素
print(list_y)
import pandas as pd
data=[[110,105,99],[105,88,115],[109,120,130]]
index=[1,2,3]
columns=['语文','数学','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
new=df.sum()
new1=df.mean()     #添加的元素
df2=pd.DataFrame(data=data,index=index,columns=columns)
df2=df.append([new,new1],ignore_index=True)     #添加多个元素
print(df2)

补充:

print(round(df2))       #保留一位小数
print(round(df2,2))     #保留两位小数

print(round(df2))       #保留一位小数
print(round(df2,2))     #保留两位小数

完整代码如下:

#区别一:
list_i=[1,2,3,4]
print(list_i)
print(id(list_i))
list_i.append(5)
print(list_i)
print(id(list_i))

import pandas as pd
data=[[110,105,99],[105,88,115],[109,120,130]]
index=[1,2,3]
columns=['语文','数学','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
print(id(df))
new=df.mean()
df2=pd.DataFrame(data=data,index=index,columns=columns)
df2=df.append(new,ignore_index=True)
print(id(df2))
#Python 内置函数 id() 返回对象的唯一标识符(CPython中为对象的内存地址)不同




#区别二:
list_y=[1,2,3,4]
list_y.append([5,6])       #添加的元素
print(list_y)
#只能添加一个元素

import pandas as pd
data=[[110,105,99],[105,88,115],[109,120,130]]
index=[1,2,3]
columns=['语文','数学','英语']
df=pd.DataFrame(data=data,index=index,columns=columns)
new=df.sum()
new1=df.mean()     #添加的元素
df2=pd.DataFrame(data=data,index=index,columns=columns)
df2=df.append([new,new1],ignore_index=True)     #可以添加多个元素,添加格式为df.append([  ])
print(df2)

print(round(df2))       #保留一位小数
print(round(df2,2))     #保留两位小数


编程学习中闹出的笑话1:

在测试Python中对象的内存地址时,数据框(pd.DataFrame)append方法添加元素时,输出数的最后两位因为巧合出现了相同的数

当时老师让我们测试列表(list)和数据框(pd.DataFrame)使用append添加元素有什么区别,我和我同学大概猜到了两个添加方法在地址上有区别的,最后运行的时候我发现后两位数是一样的(因为我习惯性就只看了后面两位),还感觉非常奇怪,我叫了我旁边一起操作的同学,他也就大概瞄了一眼,居然也没发现啥问题,还把我的代码看了好久(因为他当时已经测试出来了,得到了上面那个结论),完了我们俩就仿佛发现了新大陆一样,以为自己创造出了什么不得了的东西,后来才发我和他都只看了后两位,前面几个数都是不一样的,现在回想那个场面还是非常好笑。

总结:编写程序还是要严谨一些,这种想当然的习惯还是得改改

还好当时截了一个图,不然就要错过后续剧情了,这种概率理论上是百分之一,可事实上我后来试了一百多次也没有出现这个结果,只能说当时出现那个情况实在是太巧合了

列表(list)和数据框(pd.DataFrame)两者的区别有哪些?_第1张图片

 

你可能感兴趣的:(python,1024程序员节,python,list)