如何在Pandas的print函数中添加shape参数,对比dropna前后数据形状?
解决dropna()执行前后无法正确打印数据shape的问题
你的问题出在使用inplace=True时,dropna()会直接修改原DataFrame,同时返回None,所以第二个print输出的是None而不是处理后的数据shape。这里给两种可行的解决方式:
方式一:先执行dropna再打印shape
直接先调用带inplace=True的dropna()修改原数据,之后单独打印data.shape:
import pandas as pd import numpy as np data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/10db3746-c8ff-4c55-9ac3-4affa0b65c16/titanic.csv') print('Before dropping NaNs:', data.shape) # 直接修改原数据 data.dropna(inplace=True) # 打印处理后的shape print('After dropping NaNs:', data.shape)
方式二:不使用inplace,赋值新变量后打印shape
如果不想修改原数据,可以把处理后的结果赋值给新变量,再取新变量的shape:
import pandas as pd import numpy as np data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/10db3746-c8ff-4c55-9ac3-4affa0b65c16/titanic.csv') print('Before dropping NaNs:', data.shape) # 处理后的数据存入新变量,原数据保持不变 cleaned_data = data.dropna() # 打印新数据的shape print('After dropping NaNs:', cleaned_data.shape)
简单来说:inplace=True的作用是直接修改原对象,这类方法通常返回None,所以不能在print里直接调用它来获取shape,必须分开执行操作和打印步骤,或者用新变量接收结果。
内容的提问来源于stack exchange,提问作者Kennedy Murimi
相关产品推荐
相关产品推荐

