Python 从命令行运行.py文件时,np.random.permutation上出现ValueError,但不是在juypter笔记本中
我正在运行以下代码Python 从命令行运行.py文件时,np.random.permutation上出现ValueError,但不是在juypter笔记本中,python,pandas,numpy,Python,Pandas,Numpy,我正在运行以下代码 import pandas as pd import numpy as np import tensorflow as tf california_housing_dataframe = pd.read_csv("https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv", sep=",") california_housing_dataframe = california_
import pandas as pd
import numpy as np
import tensorflow as tf
california_housing_dataframe = pd.read_csv("https://download.mlcc.google.com/mledu-datasets/california_housing_train.csv", sep=",")
california_housing_dataframe = california_housing_dataframe.reindex(np.random.permutation(california_housing_dataframe))
california_housing_dataframe["median_house_value"] /= 1000.0
print(california_housing_dataframe.describe())
print(california_housing_dataframe)
这会导致ValueError:
ValueError:包含多个元素的数组的真值不明确。使用a.any或a.all
然而,同样的代码在jupyter笔记本中运行,只需删除打印并直接调用数据帧
我可以看出这个问题是由np.random.permutation行引起的。如果我不打印数据帧,它打印得很好。
但是为什么在jupyter笔记本中运行这个程序没有问题呢?
还有,如何解决这个问题,以便从命令行运行.py程序?替换:
california_housing_dataframe=california_housing_dataframe.reindexnp.random.Permutation california_housing_dataframe
与:
california_housing_dataframe=california_housing_dataframe.reindexnp.random.Permutation california_housing_dataframe.index
将索引设置为数据帧的置换索引,而不是似乎已修复它的整个置换数据帧!谢谢但两者之间的区别是什么呢?因为pandas索引是一组唯一标识符,位于默认整数上,从0开始,通常是1xN维度,其中数据帧中有N行。因此,通过尝试将多维数组推到整个数据帧,您让它变得有点疯狂。理论上,你可以做多维索引,但它并不是那么简单,例如。此外,如果重复某些索引,使其不唯一,则会丢失dataframe的某些元素。