具有返回值的DataFrame inplace修改

时间:2016-07-15 21:40:27

标签: python pandas dataframe in-place

我正在阅读Wes McKinney' python进行数据分析'并看到以下代码

# Always returns a reference to a DataFrame
_ = data.rename(index={'Ohio':'Indiana'}, inplace=True)

是否有理由将内部更改设置为_

2 个答案:

答案 0 :(得分:2)

_通常用于标记我们不关心/不想使用的变量。

当你拿出一个元组并且不关心所有的值时,这通常更有意义,例如。

a, _ = (1, 2)  # pulls out a == 1

在这种情况下,使用单个值,没有理由这样做。您可以安全地将此代码清理为:

data.rename(index={'Ohio':'Indiana'}, inplace=True)

我怀疑这是一个重构:

data = data.rename(index={'Ohio':'Indiana'})

将发表评论"始终返回对DataFrame的引用" 有意义(当您使用inplace时,它返回None而不是DataFrame!)。

答案 1 :(得分:1)

我们使用_来表示我们不关心的值。这是惯例。 inplace参数将改变data当前指向的对象以及返回对其的另一个引用的rename方法。此语句是从rename获取返回值并将其分配给_,表明我们将把它丢弃。这没关系,因为我们已经有了一个变量,即datainplace=True而得到结果。

Per jezrael的评论。 rename inplace=TrueNone返回_,这与分配给bool respuesta; if (Device.OS == TargetPlatform.iOS) { respuesta = await DisplayAlert(Strings.turno_confirmartitulo, Strings.turno_confirmarmensaje, Strings.si, Strings.btncancelar); } else { respuesta = DependencyService.Get<intTbsMensajes> ().MostrarMensaje( Strings.turno_confirmartitulo, Strings.turno_confirmarmensaje); } if(respuesta) {// Do something} 完全无关。

所以问题的答案是,否。