\n",
+ "\n",
+ "该项目分为多个步骤:\n",
+ "\n",
+ "* 加载和预处理图像数据集\n",
+ "* 用数据集训练图像分类器\n",
+ "* 使用训练的分类器预测图像内容\n",
+ "\n",
+ "我们将指导你完成每一步,你将用 Python 实现这些步骤。\n",
+ "\n",
+ "完成此项目后,你将拥有一个可以用任何带标签图像的数据集进行训练的应用。你的网络将学习花卉,并成为一个命令行应用。但是,你对新技能的应用取决于你的想象力和构建数据集的精力。例如,想象有一款应用能够拍摄汽车,告诉你汽车的制造商和型号,然后查询关于该汽车的信息。构建你自己的数据集并开发一款新型应用吧。\n",
+ "\n",
+ "首先,导入你所需的软件包。建议在代码开头导入所有软件包。当你创建此 notebook 时,如果发现你需要导入某个软件包,确保在开头导入该软件包。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Imports here"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 加载数据\n",
+ "\n",
+ "在此项目中,你将使用 `torchvision` 加载数据([文档](http://pytorch.org/docs/master/torchvision/transforms.html#))。数据应该和此 notebook 一起包含在内,否则你可以[在此处下载数据](https://s3.amazonaws.com/content.udacity-data.com/nd089/flower_data.tar.gz)。数据集分成了三部分:训练集、验证集和测试集。对于训练集,你需要变换数据,例如随机缩放、剪裁和翻转。这样有助于网络泛化,并带来更好的效果。你还需要确保将输入数据的大小调整为 224x224 像素,因为预训练的网络需要这么做。\n",
+ "\n",
+ "验证集和测试集用于衡量模型对尚未见过的数据的预测效果。对此步骤,你不需要进行任何缩放或旋转变换,但是需要将图像剪裁到合适的大小。\n",
+ "\n",
+ "对于所有三个数据集,你都需要将均值和标准差标准化到网络期望的结果。均值为 `[0.485, 0.456, 0.406]`,标准差为 `[0.229, 0.224, 0.225]`。这样使得每个颜色通道的值位于 -1 到 1 之间,而不是 0 到 1 之间。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "train_dir = 'train'\n",
+ "valid_dir = 'valid'\n",
+ "test_dir = 'test'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Define your transforms for the training, validation, and testing sets\n",
+ "data_transforms = \n",
+ "\n",
+ "# TODO: Load the datasets with ImageFolder\n",
+ "image_datasets = \n",
+ "\n",
+ "# TODO: Using the image datasets and the trainforms, define the dataloaders\n",
+ "dataloaders = "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### 标签映射\n",
+ "\n",
+ "你还需要加载从类别标签到类别名称的映射。你可以在文件 `cat_to_name.json` 中找到此映射。它是一个 JSON 对象,可以使用 [`json` 模块](https://docs.python.org/2/library/json.html)读取它。这样可以获得一个从整数编码的类别到实际花卉名称的映射字典。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "\n",
+ "with open('cat_to_name.json', 'r') as f:\n",
+ " cat_to_name = json.load(f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 构建和训练分类器\n",
+ "\n",
+ "数据准备好后,就开始构建和训练分类器了。和往常一样,你应该使用 `torchvision.models` 中的某个预训练模型获取图像特征。使用这些特征构建和训练新的前馈分类器。\n",
+ "\n",
+ "这部分将由你来完成。如果你想与他人讨论这部分,欢迎与你的同学讨论!你还可以在论坛上提问或在工作时间内咨询我们的课程经理和助教导师。\n",
+ "\n",
+ "请参阅[审阅标准](https://review.udacity.com/#!/rubrics/1663/view),了解如何成功地完成此部分。你需要执行以下操作:\n",
+ "\n",
+ "* 加载[预训练的网络](http://pytorch.org/docs/master/torchvision/models.html)(如果你需要一个起点,推荐使用 VGG 网络,它简单易用)\n",
+ "* 使用 ReLU 激活函数和丢弃定义新的未训练前馈网络作为分类器\n",
+ "* 使用反向传播训练分类器层,并使用预训练的网络获取特征\n",
+ "* 跟踪验证集的损失和准确率,以确定最佳超参数\n",
+ "\n",
+ "我们在下面为你留了一个空的单元格,但是你可以使用多个单元格。建议将问题拆分为更小的部分,并单独运行。检查确保每部分都达到预期效果,然后再完成下个部分。你可能会发现,当你实现每部分时,可能需要回去修改之前的代码,这很正常!\n",
+ "\n",
+ "训练时,确保仅更新前馈网络的权重。如果一切构建正确的话,验证准确率应该能够超过 70%。确保尝试不同的超参数(学习速率、分类器中的单元、周期等),寻找最佳模型。保存这些超参数并用作项目下个部分的默认值。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Build and train your network"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 测试网络\n",
+ "\n",
+ "建议使用网络在训练或验证过程中从未见过的测试数据测试训练的网络。这样,可以很好地判断模型预测全新图像的效果。用网络预测测试图像,并测量准确率,就像验证过程一样。如果模型训练良好的话,你应该能够达到大约 70% 的准确率。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Do validation on the test set"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 保存检查点\n",
+ "\n",
+ "训练好网络后,保存模型,以便稍后加载它并进行预测。你可能还需要保存其他内容,例如从类别到索引的映射,索引是从某个图像数据集中获取的:`image_datasets['train'].class_to_idx`。你可以将其作为属性附加到模型上,这样稍后推理会更轻松。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {
+ "attributes": {
+ "": "",
+ "classes": [],
+ "id": ""
+ }
+ },
+ "outputs": [],
+ "source": [
+ "\n",
+ "注意,稍后你需要完全重新构建模型,以便用模型进行推理。确保在检查点中包含你所需的任何信息。如果你想加载模型并继续训练,则需要保存周期数量和优化器状态 `optimizer.state_dict`。你可能需要在下面的下个部分使用训练的模型,因此建议立即保存它。\n",
+ "\n",
+ "\n",
+ "```python\n",
+ "# TODO: Save the checkpoint "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 加载检查点\n",
+ "\n",
+ "此刻,建议写一个可以加载检查点并重新构建模型的函数。这样的话,你可以回到此项目并继续完善它,而不用重新训练网络。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Write a function that loads a checkpoint and rebuilds the model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# 类别推理\n",
+ "\n",
+ "现在,你需要写一个使用训练的网络进行推理的函数。即你将向网络中传入一个图像,并预测图像中的花卉类别。写一个叫做 `predict` 的函数,该函数会接受图像和模型,然后返回概率在前 $K$ 的类别及其概率。应该如下所示:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "probs, classes = predict(image_path, model)\n",
+ "print(probs)\n",
+ "print(classes)\n",
+ "> [ 0.01558163 0.01541934 0.01452626 0.01443549 0.01407339]\n",
+ "> ['70', '3', '45', '62', '55']"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "首先,你需要处理输入图像,使其可以用于你的网络。\n",
+ "\n",
+ "## 图像处理\n",
+ "\n",
+ "你需要使用 `PIL` 加载图像([文档](https://pillow.readthedocs.io/en/latest/reference/Image.html))。建议写一个函数来处理图像,使图像可以作为模型的输入。该函数应该按照训练的相同方式处理图像。\n",
+ "\n",
+ "首先,调整图像大小,使最小的边为 256 像素,并保持宽高比。为此,可以使用 [`thumbnail`](http://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.thumbnail) 或 [`resize`](http://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.thumbnail) 方法。然后,你需要从图像的中心裁剪出 224x224 的部分。\n",
+ "\n",
+ "图像的颜色通道通常编码为整数 0-255,但是该模型要求值为浮点数 0-1。你需要变换值。使用 Numpy 数组最简单,你可以从 PIL 图像中获取,例如 `np_image = np.array(pil_image)`。\n",
+ "\n",
+ "和之前一样,网络要求图像按照特定的方式标准化。均值应标准化为 `[0.485, 0.456, 0.406]`,标准差应标准化为 `[0.229, 0.224, 0.225]`。你需要用每个颜色通道减去均值,然后除以标准差。\n",
+ "\n",
+ "最后,PyTorch 要求颜色通道为第一个维度,但是在 PIL 图像和 Numpy 数组中是第三个维度。你可以使用 [`ndarray.transpose`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.transpose.html)对维度重新排序。颜色通道必须是第一个维度,并保持另外两个维度的顺序。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def process_image(image):\n",
+ " ''' Scales, crops, and normalizes a PIL image for a PyTorch model,\n",
+ " returns an Numpy array\n",
+ " '''\n",
+ " \n",
+ " # TODO: Process a PIL image for use in a PyTorch model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "要检查你的项目,可以使用以下函数来转换 PyTorch 张量并将其显示在 notebook 中。如果 `process_image` 函数可行,用该函数运行输出应该会返回原始图像(但是剪裁掉的部分除外)。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def imshow(image, ax=None, title=None):\n",
+ " \"\"\"Imshow for Tensor.\"\"\"\n",
+ " if ax is None:\n",
+ " fig, ax = plt.subplots()\n",
+ " \n",
+ " # PyTorch tensors assume the color channel is the first dimension\n",
+ " # but matplotlib assumes is the third dimension\n",
+ " image = image.numpy().transpose((1, 2, 0))\n",
+ " \n",
+ " # Undo preprocessing\n",
+ " mean = np.array([0.485, 0.456, 0.406])\n",
+ " std = np.array([0.229, 0.224, 0.225])\n",
+ " image = std * image + mean\n",
+ " \n",
+ " # Image needs to be clipped between 0 and 1 or it looks like noise when displayed\n",
+ " image = np.clip(image, 0, 1)\n",
+ " \n",
+ " ax.imshow(image)\n",
+ " \n",
+ " return ax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 类别预测\n",
+ "\n",
+ "可以获得格式正确的图像后 \n",
+ "\n",
+ "要获得前 $K$ 个值,在张量中使用 [`x.topk(k)`](http://pytorch.org/docs/master/torch.html#torch.topk)。该函数会返回前 `k` 个概率和对应的类别索引。你需要使用 `class_to_idx`(希望你将其添加到了模型中)将这些索引转换为实际类别标签,或者从用来加载数据的[ `ImageFolder`](https://pytorch.org/docs/master/torchvision/datasets.html?highlight=imagefolder#torchvision.datasets.ImageFolder)进行转换。确保颠倒字典\n",
+ "\n",
+ "同样,此方法应该接受图像路径和模型检查点,并返回概率和类别。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "probs, classes = predict(image_path, model)\n",
+ "print(probs)\n",
+ "print(classes)\n",
+ "> [ 0.01558163 0.01541934 0.01452626 0.01443549 0.01407339]\n",
+ "> ['70', '3', '45', '62', '55']"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def predict(image_path, model, topk=5):\n",
+ " ''' Predict the class (or classes) of an image using a trained deep learning model.\n",
+ " '''\n",
+ " \n",
+ " # TODO: Implement the code to predict the class from an image file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## 检查运行状况\n",
+ "\n",
+ "你已经可以使用训练的模型做出预测,现在检查模型的性能如何。即使测试准确率很高,始终有必要检查是否存在明显的错误。使用 `matplotlib` 将前 5 个类别的概率以及输入图像绘制为条形图,应该如下所示:\n",
+ "\n",
+ "
\n",
+ "\n",
+ "你可以使用 `cat_to_name.json` 文件(应该之前已经在 notebook 中加载该文件)将类别整数编码转换为实际花卉名称。要将 PyTorch 张量显示为图像,请使用定义如下的 `imshow` 函数。"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Display an image along with the top 5 classes"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/python/Deep Learning/Project/part1/Image Classifier Project.ipynb b/python/Deep Learning/Project/part1/Image Classifier Project.ipynb
new file mode 100644
index 0000000..e235a9a
--- /dev/null
+++ b/python/Deep Learning/Project/part1/Image Classifier Project.ipynb
@@ -0,0 +1,350 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Developing an AI application\n",
+ "\n",
+ "Going forward, AI algorithms will be incorporated into more and more everyday applications. For example, you might want to include an image classifier in a smart phone app. To do this, you'd use a deep learning model trained on hundreds of thousands of images as part of the overall application architecture. A large part of software development in the future will be using these types of models as common parts of applications. \n",
+ "\n",
+ "In this project, you'll train an image classifier to recognize different species of flowers. You can imagine using something like this in a phone app that tells you the name of the flower your camera is looking at. In practice you'd train this classifier, then export it for use in your application. We'll be using [this dataset](http://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html) of 102 flower categories, you can see a few examples below. \n",
+ "\n",
+ "
\n",
+ "\n",
+ "The project is broken down into multiple steps:\n",
+ "\n",
+ "* Load and preprocess the image dataset\n",
+ "* Train the image classifier on your dataset\n",
+ "* Use the trained classifier to predict image content\n",
+ "\n",
+ "We'll lead you through each part which you'll implement in Python.\n",
+ "\n",
+ "When you've completed this project, you'll have an application that can be trained on any set of labeled images. Here your network will be learning about flowers and end up as a command line application. But, what you do with your new skills depends on your imagination and effort in building a dataset. For example, imagine an app where you take a picture of a car, it tells you what the make and model is, then looks up information about it. Go build your own dataset and make something new.\n",
+ "\n",
+ "First up is importing the packages you'll need. It's good practice to keep all the imports at the beginning of your code. As you work through this notebook and find you need to import a package, make sure to add the import up here."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Imports here"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Load the data\n",
+ "\n",
+ "Here you'll use `torchvision` to load the data ([documentation](http://pytorch.org/docs/0.3.0/torchvision/index.html)). The data should be included alongside this notebook, otherwise you can [download it here](https://s3.amazonaws.com/content.udacity-data.com/nd089/flower_data.tar.gz). The dataset is split into three parts, training, validation, and testing. For the training, you'll want to apply transformations such as random scaling, cropping, and flipping. This will help the network generalize leading to better performance. You'll also need to make sure the input data is resized to 224x224 pixels as required by the pre-trained networks.\n",
+ "\n",
+ "The validation and testing sets are used to measure the model's performance on data it hasn't seen yet. For this you don't want any scaling or rotation transformations, but you'll need to resize then crop the images to the appropriate size.\n",
+ "\n",
+ "The pre-trained networks you'll use were trained on the ImageNet dataset where each color channel was normalized separately. For all three sets you'll need to normalize the means and standard deviations of the images to what the network expects. For the means, it's `[0.485, 0.456, 0.406]` and for the standard deviations `[0.229, 0.224, 0.225]`, calculated from the ImageNet images. These values will shift each color channel to be centered at 0 and range from -1 to 1.\n",
+ " "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "data_dir = 'flowers'\n",
+ "train_dir = data_dir + '/train'\n",
+ "valid_dir = data_dir + '/valid'\n",
+ "test_dir = data_dir + '/test'"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Define your transforms for the training, validation, and testing sets\n",
+ "data_transforms = \n",
+ "\n",
+ "# TODO: Load the datasets with ImageFolder\n",
+ "image_datasets = \n",
+ "\n",
+ "# TODO: Using the image datasets and the trainforms, define the dataloaders\n",
+ "dataloaders = "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Label mapping\n",
+ "\n",
+ "You'll also need to load in a mapping from category label to category name. You can find this in the file `cat_to_name.json`. It's a JSON object which you can read in with the [`json` module](https://docs.python.org/2/library/json.html). This will give you a dictionary mapping the integer encoded categories to the actual names of the flowers."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import json\n",
+ "\n",
+ "with open('cat_to_name.json', 'r') as f:\n",
+ " cat_to_name = json.load(f)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Building and training the classifier\n",
+ "\n",
+ "Now that the data is ready, it's time to build and train the classifier. As usual, you should use one of the pretrained models from `torchvision.models` to get the image features. Build and train a new feed-forward classifier using those features.\n",
+ "\n",
+ "We're going to leave this part up to you. Refer to [the rubric](https://review.udacity.com/#!/rubrics/1663/view) for guidance on successfully completing this section. Things you'll need to do:\n",
+ "\n",
+ "* Load a [pre-trained network](http://pytorch.org/docs/master/torchvision/models.html) (If you need a starting point, the VGG networks work great and are straightforward to use)\n",
+ "* Define a new, untrained feed-forward network as a classifier, using ReLU activations and dropout\n",
+ "* Train the classifier layers using backpropagation using the pre-trained network to get the features\n",
+ "* Track the loss and accuracy on the validation set to determine the best hyperparameters\n",
+ "\n",
+ "We've left a cell open for you below, but use as many as you need. Our advice is to break the problem up into smaller parts you can run separately. Check that each part is doing what you expect, then move on to the next. You'll likely find that as you work through each part, you'll need to go back and modify your previous code. This is totally normal!\n",
+ "\n",
+ "When training make sure you're updating only the weights of the feed-forward network. You should be able to get the validation accuracy above 70% if you build everything right. Make sure to try different hyperparameters (learning rate, units in the classifier, epochs, etc) to find the best model. Save those hyperparameters to use as default values in the next part of the project.\n",
+ "\n",
+ "One last important tip if you're using the workspace to run your code: To avoid having your workspace disconnect during the long-running tasks in this notebook, please read in the earlier page in this lesson called Intro to\n",
+ "GPU Workspaces about Keeping Your Session Active. You'll want to include code from the workspace_utils.py module.\n",
+ "\n",
+ "**Note for Workspace users:** If your network is over 1 GB when saved as a checkpoint, there might be issues with saving backups in your workspace. Typically this happens with wide dense layers after the convolutional layers. If your saved checkpoint is larger than 1 GB (you can open a terminal and check with `ls -lh`), you should reduce the size of your hidden layers and train again."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Build and train your network"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Testing your network\n",
+ "\n",
+ "It's good practice to test your trained network on test data, images the network has never seen either in training or validation. This will give you a good estimate for the model's performance on completely new images. Run the test images through the network and measure the accuracy, the same way you did validation. You should be able to reach around 70% accuracy on the test set if the model has been trained well."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Do validation on the test set"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Save the checkpoint\n",
+ "\n",
+ "Now that your network is trained, save the model so you can load it later for making predictions. You probably want to save other things such as the mapping of classes to indices which you get from one of the image datasets: `image_datasets['train'].class_to_idx`. You can attach this to the model as an attribute which makes inference easier later on.\n",
+ "\n",
+ "```model.class_to_idx = image_datasets['train'].class_to_idx```\n",
+ "\n",
+ "Remember that you'll want to completely rebuild the model later so you can use it for inference. Make sure to include any information you need in the checkpoint. If you want to load the model and keep training, you'll want to save the number of epochs as well as the optimizer state, `optimizer.state_dict`. You'll likely want to use this trained model in the next part of the project, so best to save it now."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Save the checkpoint "
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Loading the checkpoint\n",
+ "\n",
+ "At this point it's good to write a function that can load a checkpoint and rebuild the model. That way you can come back to this project and keep working on it without having to retrain the network."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Write a function that loads a checkpoint and rebuilds the model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Inference for classification\n",
+ "\n",
+ "Now you'll write a function to use a trained network for inference. That is, you'll pass an image into the network and predict the class of the flower in the image. Write a function called `predict` that takes an image and a model, then returns the top $K$ most likely classes along with the probabilities. It should look like \n",
+ "\n",
+ "```python\n",
+ "probs, classes = predict(image_path, model)\n",
+ "print(probs)\n",
+ "print(classes)\n",
+ "> [ 0.01558163 0.01541934 0.01452626 0.01443549 0.01407339]\n",
+ "> ['70', '3', '45', '62', '55']\n",
+ "```\n",
+ "\n",
+ "First you'll need to handle processing the input image such that it can be used in your network. \n",
+ "\n",
+ "## Image Preprocessing\n",
+ "\n",
+ "You'll want to use `PIL` to load the image ([documentation](https://pillow.readthedocs.io/en/latest/reference/Image.html)). It's best to write a function that preprocesses the image so it can be used as input for the model. This function should process the images in the same manner used for training. \n",
+ "\n",
+ "First, resize the images where the shortest side is 256 pixels, keeping the aspect ratio. This can be done with the [`thumbnail`](http://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.thumbnail) or [`resize`](http://pillow.readthedocs.io/en/3.1.x/reference/Image.html#PIL.Image.Image.thumbnail) methods. Then you'll need to crop out the center 224x224 portion of the image.\n",
+ "\n",
+ "Color channels of images are typically encoded as integers 0-255, but the model expected floats 0-1. You'll need to convert the values. It's easiest with a Numpy array, which you can get from a PIL image like so `np_image = np.array(pil_image)`.\n",
+ "\n",
+ "As before, the network expects the images to be normalized in a specific way. For the means, it's `[0.485, 0.456, 0.406]` and for the standard deviations `[0.229, 0.224, 0.225]`. You'll want to subtract the means from each color channel, then divide by the standard deviation. \n",
+ "\n",
+ "And finally, PyTorch expects the color channel to be the first dimension but it's the third dimension in the PIL image and Numpy array. You can reorder dimensions using [`ndarray.transpose`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.ndarray.transpose.html). The color channel needs to be first and retain the order of the other two dimensions."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def process_image(image):\n",
+ " ''' Scales, crops, and normalizes a PIL image for a PyTorch model,\n",
+ " returns an Numpy array\n",
+ " '''\n",
+ " \n",
+ " # TODO: Process a PIL image for use in a PyTorch model"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "To check your work, the function below converts a PyTorch tensor and displays it in the notebook. If your `process_image` function works, running the output through this function should return the original image (except for the cropped out portions)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def imshow(image, ax=None, title=None):\n",
+ " \"\"\"Imshow for Tensor.\"\"\"\n",
+ " if ax is None:\n",
+ " fig, ax = plt.subplots()\n",
+ " \n",
+ " # PyTorch tensors assume the color channel is the first dimension\n",
+ " # but matplotlib assumes is the third dimension\n",
+ " image = image.numpy().transpose((1, 2, 0))\n",
+ " \n",
+ " # Undo preprocessing\n",
+ " mean = np.array([0.485, 0.456, 0.406])\n",
+ " std = np.array([0.229, 0.224, 0.225])\n",
+ " image = std * image + mean\n",
+ " \n",
+ " # Image needs to be clipped between 0 and 1 or it looks like noise when displayed\n",
+ " image = np.clip(image, 0, 1)\n",
+ " \n",
+ " ax.imshow(image)\n",
+ " \n",
+ " return ax"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Class Prediction\n",
+ "\n",
+ "Once you can get images in the correct format, it's time to write a function for making predictions with your model. A common practice is to predict the top 5 or so (usually called top-$K$) most probable classes. You'll want to calculate the class probabilities then find the $K$ largest values.\n",
+ "\n",
+ "To get the top $K$ largest values in a tensor use [`x.topk(k)`](http://pytorch.org/docs/master/torch.html#torch.topk). This method returns both the highest `k` probabilities and the indices of those probabilities corresponding to the classes. You need to convert from these indices to the actual class labels using `class_to_idx` which hopefully you added to the model or from an `ImageFolder` you used to load the data ([see here](#Save-the-checkpoint)). Make sure to invert the dictionary so you get a mapping from index to class as well.\n",
+ "\n",
+ "Again, this method should take a path to an image and a model checkpoint, then return the probabilities and classes.\n",
+ "\n",
+ "```python\n",
+ "probs, classes = predict(image_path, model)\n",
+ "print(probs)\n",
+ "print(classes)\n",
+ "> [ 0.01558163 0.01541934 0.01452626 0.01443549 0.01407339]\n",
+ "> ['70', '3', '45', '62', '55']\n",
+ "```"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def predict(image_path, model, topk=5):\n",
+ " ''' Predict the class (or classes) of an image using a trained deep learning model.\n",
+ " '''\n",
+ " \n",
+ " # TODO: Implement the code to predict the class from an image file"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Sanity Checking\n",
+ "\n",
+ "Now that you can use a trained model for predictions, check to make sure it makes sense. Even if the testing accuracy is high, it's always good to check that there aren't obvious bugs. Use `matplotlib` to plot the probabilities for the top 5 classes as a bar graph, along with the input image. It should look like this:\n",
+ "\n",
+ "
\n",
+ "\n",
+ "You can convert from the class integer encoding to actual flower names with the `cat_to_name.json` file (should have been loaded earlier in the notebook). To show a PyTorch tensor as an image, use the `imshow` function defined above."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# TODO: Display an image along with the top 5 classes"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.6.3"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/python/Deep Learning/Project/part1/LICENSE b/python/Deep Learning/Project/part1/LICENSE
new file mode 100644
index 0000000..ee6ffb9
--- /dev/null
+++ b/python/Deep Learning/Project/part1/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Udacity
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/python/Deep Learning/Project/part1/README.md b/python/Deep Learning/Project/part1/README.md
new file mode 100644
index 0000000..49939e7
--- /dev/null
+++ b/python/Deep Learning/Project/part1/README.md
@@ -0,0 +1,3 @@
+# AI Programming with Python Project
+
+Project code for Udacity's AI Programming with Python Nanodegree program. In this project, students first develop code for an image classifier built with PyTorch, then convert it into a command line application.
diff --git a/python/Deep Learning/Project/part1/assets/Flowers.png b/python/Deep Learning/Project/part1/assets/Flowers.png
new file mode 100644
index 0000000..9190c93
Binary files /dev/null and b/python/Deep Learning/Project/part1/assets/Flowers.png differ
diff --git a/python/Deep Learning/Project/part1/assets/inference_example.png b/python/Deep Learning/Project/part1/assets/inference_example.png
new file mode 100644
index 0000000..dd8b08d
Binary files /dev/null and b/python/Deep Learning/Project/part1/assets/inference_example.png differ
diff --git a/python/Deep Learning/Project/part1/cat_to_name.json b/python/Deep Learning/Project/part1/cat_to_name.json
new file mode 100644
index 0000000..b273b57
--- /dev/null
+++ b/python/Deep Learning/Project/part1/cat_to_name.json
@@ -0,0 +1 @@
+{"21": "fire lily", "3": "canterbury bells", "45": "bolero deep blue", "1": "pink primrose", "34": "mexican aster", "27": "prince of wales feathers", "7": "moon orchid", "16": "globe-flower", "25": "grape hyacinth", "26": "corn poppy", "79": "toad lily", "39": "siam tulip", "24": "red ginger", "67": "spring crocus", "35": "alpine sea holly", "32": "garden phlox", "10": "globe thistle", "6": "tiger lily", "93": "ball moss", "33": "love in the mist", "9": "monkshood", "102": "blackberry lily", "14": "spear thistle", "19": "balloon flower", "100": "blanket flower", "13": "king protea", "49": "oxeye daisy", "15": "yellow iris", "61": "cautleya spicata", "31": "carnation", "64": "silverbush", "68": "bearded iris", "63": "black-eyed susan", "69": "windflower", "62": "japanese anemone", "20": "giant white arum lily", "38": "great masterwort", "4": "sweet pea", "86": "tree mallow", "101": "trumpet creeper", "42": "daffodil", "22": "pincushion flower", "2": "hard-leaved pocket orchid", "54": "sunflower", "66": "osteospermum", "70": "tree poppy", "85": "desert-rose", "99": "bromelia", "87": "magnolia", "5": "english marigold", "92": "bee balm", "28": "stemless gentian", "97": "mallow", "57": "gaura", "40": "lenten rose", "47": "marigold", "59": "orange dahlia", "48": "buttercup", "55": "pelargonium", "36": "ruby-lipped cattleya", "91": "hippeastrum", "29": "artichoke", "71": "gazania", "90": "canna lily", "18": "peruvian lily", "98": "mexican petunia", "8": "bird of paradise", "30": "sweet william", "17": "purple coneflower", "52": "wild pansy", "84": "columbine", "12": "colt's foot", "11": "snapdragon", "96": "camellia", "23": "fritillary", "50": "common dandelion", "44": "poinsettia", "53": "primula", "72": "azalea", "65": "californian poppy", "80": "anthurium", "76": "morning glory", "37": "cape flower", "56": "bishop of llandaff", "60": "pink-yellow dahlia", "82": "clematis", "58": "geranium", "75": "thorn apple", "41": "barbeton daisy", "95": "bougainvillea", "43": "sword lily", "83": "hibiscus", "78": "lotus lotus", "88": "cyclamen", "94": "foxglove", "81": "frangipani", "74": "rose", "89": "watercress", "73": "water lily", "46": "wallflower", "77": "passion flower", "51": "petunia"}
\ No newline at end of file
diff --git a/python/Deep Learning/Project/part1/predict.py b/python/Deep Learning/Project/part1/predict.py
new file mode 100644
index 0000000..e69de29
diff --git a/python/Deep Learning/Project/part1/train.py b/python/Deep Learning/Project/part1/train.py
new file mode 100644
index 0000000..e69de29
diff --git a/python/Deep Learning/Project/part1/workspace-utils.py b/python/Deep Learning/Project/part1/workspace-utils.py
new file mode 100644
index 0000000..e5432f0
--- /dev/null
+++ b/python/Deep Learning/Project/part1/workspace-utils.py
@@ -0,0 +1,54 @@
+import signal
+
+from contextlib import contextmanager
+
+import requests
+
+
+DELAY = INTERVAL = 4 * 60 # interval time in seconds
+MIN_DELAY = MIN_INTERVAL = 2 * 60
+KEEPALIVE_URL = "https://nebula.udacity.com/api/v1/remote/keep-alive"
+TOKEN_URL = "http://metadata.google.internal/computeMetadata/v1/instance/attributes/keep_alive_token"
+TOKEN_HEADERS = {"Metadata-Flavor":"Google"}
+
+
+def _request_handler(headers):
+ def _handler(signum, frame):
+ requests.request("POST", KEEPALIVE_URL, headers=headers)
+ return _handler
+
+
+@contextmanager
+def active_session(delay=DELAY, interval=INTERVAL):
+ """
+ Example:
+
+ from workspace_utils import active session
+
+ with active_session():
+ # do long-running work here
+ """
+ token = requests.request("GET", TOKEN_URL, headers=TOKEN_HEADERS).text
+ headers = {'Authorization': "STAR " + token}
+ delay = max(delay, MIN_DELAY)
+ interval = max(interval, MIN_INTERVAL)
+ original_handler = signal.getsignal(signal.SIGALRM)
+ try:
+ signal.signal(signal.SIGALRM, _request_handler(headers))
+ signal.setitimer(signal.ITIMER_REAL, delay, interval)
+ yield
+ finally:
+ signal.signal(signal.SIGALRM, original_handler)
+ signal.setitimer(signal.ITIMER_REAL, 0)
+
+
+def keep_awake(iterable, delay=DELAY, interval=INTERVAL):
+ """
+ Example:
+
+ from workspace_utils import keep_awake
+
+ for i in keep_awake(range(5)):
+ # do iteration with lots of work here
+ """
+ with active_session(delay, interval): yield from iterable
diff --git a/python/Unsupervised Learning/Dimensionality Reduction and PCA/.ipynb_checkpoints/Interpret_PCA_Results-checkpoint.ipynb b/python/Unsupervised Learning/Dimensionality Reduction and PCA/.ipynb_checkpoints/Interpret_PCA_Results-checkpoint.ipynb
new file mode 100644
index 0000000..8606993
--- /dev/null
+++ b/python/Unsupervised Learning/Dimensionality Reduction and PCA/.ipynb_checkpoints/Interpret_PCA_Results-checkpoint.ipynb
@@ -0,0 +1,271 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Your Turn!\n",
+ "\n",
+ "In the last video, you saw two of the main aspects of principal components:\n",
+ "\n",
+ "1. **The amount of variability captured by the component.**\n",
+ "2. **The components themselves.**\n",
+ "\n",
+ "In this notebook, you will get a chance to explore these a bit more yourself. First, let's read in the necessary libraries, as well as the data."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/home/workspace/helper_functions.py:44: FutureWarning: Method .as_matrix will be removed in a future version. Use .values instead.\n",
+ " mat_data = X.iloc[digit_num].as_matrix().reshape(28,28) #reshape images\n"
+ ]
+ },
+ {
+ "data": {
+ "image/png": "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\n",
+ "text/plain": [
+ "| \n", + " | label | \n", + "pixel0 | \n", + "pixel1 | \n", + "pixel2 | \n", + "pixel3 | \n", + "pixel4 | \n", + "pixel5 | \n", + "pixel6 | \n", + "pixel7 | \n", + "pixel8 | \n", + "... | \n", + "pixel774 | \n", + "pixel775 | \n", + "pixel776 | \n", + "pixel777 | \n", + "pixel778 | \n", + "pixel779 | \n", + "pixel780 | \n", + "pixel781 | \n", + "pixel782 | \n", + "pixel783 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 2 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 3 | \n", + "4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
5 rows × 785 columns
\n", + "| \n", + " | label | \n", + "pixel0 | \n", + "pixel1 | \n", + "pixel2 | \n", + "pixel3 | \n", + "pixel4 | \n", + "pixel5 | \n", + "pixel6 | \n", + "pixel7 | \n", + "pixel8 | \n", + "... | \n", + "pixel774 | \n", + "pixel775 | \n", + "pixel776 | \n", + "pixel777 | \n", + "pixel778 | \n", + "pixel779 | \n", + "pixel780 | \n", + "pixel781 | \n", + "pixel782 | \n", + "pixel783 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| count | \n", + "6304.000000 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "... | \n", + "6304.000000 | \n", + "6304.000000 | \n", + "6304.000000 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "6304.0 | \n", + "
| mean | \n", + "4.440355 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.139594 | \n", + "0.142291 | \n", + "0.026967 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| std | \n", + "2.885613 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "5.099940 | \n", + "5.531089 | \n", + "1.675547 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| min | \n", + "0.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 25% | \n", + "2.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 50% | \n", + "4.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| 75% | \n", + "7.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
| max | \n", + "9.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "... | \n", + "253.000000 | \n", + "253.000000 | \n", + "130.000000 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "0.0 | \n", + "
8 rows × 785 columns
\n", + "| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "-1 | \n", + "2 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "-1 | \n", + "1 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "-1 | \n", + "3 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "-1 | \n", + "3 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "3 | \n", + "1 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "-1 | \n", + "2 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "-1 | \n", + "1 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "-1 | \n", + "3 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "-1 | \n", + "3 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
10 rows × 85 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 0 | \n", + "AGER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 1 | \n", + "ALTERSKATEGORIE_GROB | \n", + "person | \n", + "ordinal | \n", + "[-1,0,9] | \n", + "
| 2 | \n", + "ANREDE_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 3 | \n", + "CJT_GESAMTTYP | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 4 | \n", + "FINANZ_MINIMALIST | \n", + "person | \n", + "ordinal | \n", + "[-1] | \n", + "
| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "2.0 | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "3.0 | \n", + "1.0 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "NaN | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "NaN | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 10 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 11 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 12 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 13 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 14 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 15 | \n", + "1.0 | \n", + "4.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 16 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 17 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 18 | \n", + "NaN | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 19 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
20 rows × 85 columns
\n", + "| \n", + " | 0 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "6 | \n", + "7 | \n", + "8 | \n", + "9 | \n", + "... | \n", + "891211 | \n", + "891212 | \n", + "891213 | \n", + "891214 | \n", + "891215 | \n", + "891216 | \n", + "891217 | \n", + "891218 | \n", + "891219 | \n", + "891220 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTERSKATEGORIE_GROB | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "3 | \n", + "... | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "
| ANREDE_KZ | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "
2 rows × 891221 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "SEMIO_RAT | \n", + "SEMIO_KRIT | \n", + "SEMIO_DOM | \n", + "SEMIO_KAEM | \n", + "SEMIO_PFLICHT | \n", + "SEMIO_TRADV | \n", + "ZABEOTYP | \n", + "HH_EINKOMMEN_SCORE | \n", + "ANZ_HAUSHALTE_AKTIV | \n", + "ONLINE_AFFINITAET | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 830954 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "
| 829381 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "7 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 841875 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "2.0 | \n", + "NaN | \n", + "3.0 | \n", + "
| 848175 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 818489 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "5.0 | \n", + "
| 215572 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 83951 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "6 | \n", + "NaN | \n", + "NaN | \n", + "5.0 | \n", + "
| 284735 | \n", + "2.0 | \n", + "1 | \n", + "4.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 258200 | \n", + "1.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "4 | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "
| 388735 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
10 rows × 33 columns
\n", + "" + ], + "text/plain": [ + " ALTERSKATEGORIE_GROB ANREDE_KZ CJT_GESAMTTYP FINANZ_MINIMALIST \\\n", + "830954 1.0 2 3.0 1 \n", + "829381 3.0 2 1.0 4 \n", + "841875 1.0 1 4.0 2 \n", + "848175 2.0 1 3.0 4 \n", + "818489 1.0 2 4.0 3 \n", + "215572 1.0 1 4.0 2 \n", + "83951 3.0 1 5.0 5 \n", + "284735 2.0 1 4.0 4 \n", + "258200 1.0 2 6.0 2 \n", + "388735 3.0 1 6.0 5 \n", + "\n", + " FINANZ_SPARER FINANZ_VORSORGER FINANZ_ANLEGER \\\n", + "830954 5 3 5 \n", + "829381 2 4 4 \n", + "841875 5 3 5 \n", + "848175 4 2 4 \n", + "818489 4 2 5 \n", + "215572 5 3 5 \n", + "83951 3 4 3 \n", + "284735 4 2 4 \n", + "258200 5 3 5 \n", + "388735 2 5 2 \n", + "\n", + " FINANZ_UNAUFFAELLIGER FINANZ_HAUSBAUER FINANZTYP ... \\\n", + "830954 5 3 1 ... \n", + "829381 3 1 3 ... \n", + "841875 5 2 1 ... \n", + "848175 5 1 3 ... \n", + "818489 5 2 4 ... \n", + "215572 5 2 1 ... \n", + "83951 3 1 3 ... \n", + "284735 5 1 3 ... \n", + "258200 5 4 1 ... \n", + "388735 3 2 2 ... \n", + "\n", + " SEMIO_RAT SEMIO_KRIT SEMIO_DOM SEMIO_KAEM SEMIO_PFLICHT \\\n", + "830954 6 7 6 6 5 \n", + "829381 4 7 6 7 4 \n", + "841875 4 1 2 4 5 \n", + "848175 5 1 2 2 5 \n", + "818489 6 7 6 6 5 \n", + "215572 5 1 2 4 5 \n", + "83951 5 3 2 3 4 \n", + "284735 4 1 2 2 5 \n", + "258200 6 7 6 6 5 \n", + "388735 5 3 2 3 4 \n", + "\n", + " SEMIO_TRADV ZABEOTYP HH_EINKOMMEN_SCORE ANZ_HAUSHALTE_AKTIV \\\n", + "830954 6 5 NaN NaN \n", + "829381 3 3 NaN NaN \n", + "841875 5 1 2.0 NaN \n", + "848175 5 5 2.0 NaN \n", + "818489 6 5 NaN NaN \n", + "215572 5 5 NaN NaN \n", + "83951 4 6 NaN NaN \n", + "284735 5 5 NaN NaN \n", + "258200 6 4 NaN NaN \n", + "388735 4 3 NaN NaN \n", + "\n", + " ONLINE_AFFINITAET \n", + "830954 3.0 \n", + "829381 4.0 \n", + "841875 3.0 \n", + "848175 2.0 \n", + "818489 5.0 \n", + "215572 4.0 \n", + "83951 5.0 \n", + "284735 4.0 \n", + "258200 3.0 \n", + "388735 4.0 \n", + "\n", + "[10 rows x 33 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compare the distribution of values for at least five columns where there are\n", + "# no or few missing values, between the two subsets.\n", + "print(f'Number of cols to drop: {len(columnPatternIndexes)}')\n", + "anomaliesL_compare = anomaliesL.drop(anomaliesL.iloc[:,columnPatternIndexes], axis=1)\n", + "print(f'Number of cols kept: {anomaliesL_compare.shape[1]}')\n", + "anomaliesL_compare.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "\n", + "def dataComparison(df):\n", + " cols = random.sample(list(df.columns.values), 5)\n", + " f, axes = plt.subplots(1, 5, figsize=(25,4))\n", + " for i in range(0, 5):\n", + " sns.countplot(x=cols[i], data=df.fillna('Missing'), ax=axes[i]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Answer\n", + "Let's look at the data distribution for the Lower group (those that don't have many zero values across the rows)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "SEMIO_RAT | \n", + "SEMIO_KRIT | \n", + "SEMIO_DOM | \n", + "SEMIO_KAEM | \n", + "SEMIO_PFLICHT | \n", + "SEMIO_TRADV | \n", + "ZABEOTYP | \n", + "HH_EINKOMMEN_SCORE | \n", + "ANZ_HAUSHALTE_AKTIV | \n", + "ONLINE_AFFINITAET | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 643174 | \n", + "3.0 | \n", + "1 | \n", + "NaN | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 732775 | \n", + "3.0 | \n", + "2 | \n", + "NaN | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 472919 | \n", + "1.0 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "6 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 183108 | \n", + "1.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 139316 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691141 | \n", + "1.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691142 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691171 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691183 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 139332 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
10 rows × 33 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 0 | \n", + "AGER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 2 | \n", + "ANREDE_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 3 | \n", + "CJT_GESAMTTYP | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 10 | \n", + "FINANZTYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 12 | \n", + "GFK_URLAUBERTYP | \n", + "person | \n", + "categorical | \n", + "[] | \n", + "
| 13 | \n", + "GREEN_AVANTGARDE | \n", + "person | \n", + "categorical | \n", + "[] | \n", + "
| 17 | \n", + "LP_FAMILIE_FEIN | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 18 | \n", + "LP_FAMILIE_GROB | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 19 | \n", + "LP_STATUS_FEIN | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 20 | \n", + "LP_STATUS_GROB | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 21 | \n", + "NATIONALITAET_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 38 | \n", + "SHOPPER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 39 | \n", + "SOHO_KZ | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 40 | \n", + "TITEL_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 41 | \n", + "VERS_TYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 42 | \n", + "ZABEOTYP | \n", + "person | \n", + "categorical | \n", + "[-1,9] | \n", + "
| 47 | \n", + "KK_KUNDENTYP | \n", + "household | \n", + "categorical | \n", + "[-1] | \n", + "
| 52 | \n", + "GEBAEUDETYP | \n", + "building | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 55 | \n", + "OST_WEST_KZ | \n", + "building | \n", + "categorical | \n", + "[-1] | \n", + "
| 57 | \n", + "CAMEO_DEUG_2015 | \n", + "microcell_rr4 | \n", + "categorical | \n", + "[-1,X] | \n", + "
| 58 | \n", + "CAMEO_DEU_2015 | \n", + "microcell_rr4 | \n", + "categorical | \n", + "[XX] | \n", + "
| \n", + " | CJT_GESAMTTYP | \n", + "FINANZTYP | \n", + "GFK_URLAUBERTYP | \n", + "LP_FAMILIE_FEIN | \n", + "LP_FAMILIE_GROB | \n", + "LP_STATUS_FEIN | \n", + "LP_STATUS_GROB | \n", + "NATIONALITAET_KZ | \n", + "SHOPPER_TYP | \n", + "SOHO_KZ | \n", + "VERS_TYP | \n", + "ZABEOTYP | \n", + "GEBAEUDETYP | \n", + "OST_WEST_KZ | \n", + "CAMEO_DEUG_2015 | \n", + "CAMEO_DEU_2015 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "4 | \n", + "10.0 | \n", + "2.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "5.0 | \n", + "1 | \n", + "10.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5 | \n", + "8.0 | \n", + "W | \n", + "8 | \n", + "8A | \n", + "
| 2 | \n", + "3.0 | \n", + "1 | \n", + "10.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5 | \n", + "1.0 | \n", + "W | \n", + "4 | \n", + "4C | \n", + "
| 3 | \n", + "2.0 | \n", + "6 | \n", + "1.0 | \n", + "NaN | \n", + "NaN | \n", + "9.0 | \n", + "4.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "1.0 | \n", + "W | \n", + "2 | \n", + "2A | \n", + "
| 4 | \n", + "5.0 | \n", + "5 | \n", + "5.0 | \n", + "10.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "4 | \n", + "1.0 | \n", + "W | \n", + "6 | \n", + "6B | \n", + "
| \n", + " | CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "FINANZTYP_3 | \n", + "... | \n", + "CAMEO_DEU_2015_8A | \n", + "CAMEO_DEU_2015_8B | \n", + "CAMEO_DEU_2015_8C | \n", + "CAMEO_DEU_2015_8D | \n", + "CAMEO_DEU_2015_9A | \n", + "CAMEO_DEU_2015_9B | \n", + "CAMEO_DEU_2015_9C | \n", + "CAMEO_DEU_2015_9D | \n", + "CAMEO_DEU_2015_9E | \n", + "CAMEO_DEU_2015_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 148 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 15 | \n", + "LP_LEBENSPHASE_FEIN | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 16 | \n", + "LP_LEBENSPHASE_GROB | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 22 | \n", + "PRAEGENDE_JUGENDJAHRE | \n", + "person | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 56 | \n", + "WOHNLAGE | \n", + "building | \n", + "mixed | \n", + "[-1] | \n", + "
| 59 | \n", + "CAMEO_INTL_2015 | \n", + "microcell_rr4 | \n", + "mixed | \n", + "[-1,XX] | \n", + "
| 64 | \n", + "KBA05_BAUMAX | \n", + "microcell_rr3 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 79 | \n", + "PLZ8_BAUMAX | \n", + "macrocell_plz8 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "
|---|---|---|
| 0 | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "90.0 | \n", + "mainstream | \n", + "
| 2 | \n", + "90.0 | \n", + "avantgarde | \n", + "
| 3 | \n", + "70.0 | \n", + "mainstream | \n", + "
| 4 | \n", + "70.0 | \n", + "mainstream | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|
| 0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "mainstream | \n", + "90.0 | \n", + "5 | \n", + "1 | \n", + "
| 2 | \n", + "avantgarde | \n", + "90.0 | \n", + "2 | \n", + "4 | \n", + "
| 3 | \n", + "mainstream | \n", + "70.0 | \n", + "1 | \n", + "2 | \n", + "
| 4 | \n", + "mainstream | \n", + "70.0 | \n", + "4 | \n", + "3 | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement_avantgarde | \n", + "PRAEGENDE_JUGENDJAHRE_movement_mainstream | \n", + "PRAEGENDE_JUGENDJAHRE_movement_nan | \n", + "PRAEGENDE_JUGENDJAHRE_decade_40.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_50.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_60.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_70.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_80.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_90.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_nan | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 22 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "90.0 | \n", + "mainstream | \n", + "5 | \n", + "1 | \n", + "
2 rows × 83 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "3.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 10 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 11 | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 12 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 13 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 14 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 15 | \n", + "4.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 16 | \n", + "1.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 17 | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 18 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 19 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 20 | \n", + "2.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "
| 21 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 22 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 23 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "6.0 | \n", + "2.0 | \n", + "
| 24 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 25 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "
| 26 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "
| 27 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 28 | \n", + "3.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "
| 29 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 891191 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 891192 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 891193 | \n", + "4.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "4.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 891194 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891195 | \n", + "4.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891196 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "
| 891197 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891198 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891199 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "3.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891200 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 891201 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891202 | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "2.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891203 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891204 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "4.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891205 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891206 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 891207 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 891208 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "
| 891209 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 891210 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891211 | \n", + "3.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 891212 | \n", + "4.0 | \n", + "1 | \n", + "1.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "5 | \n", + "... | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "1.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891213 | \n", + "4.0 | \n", + "2 | \n", + "5.0 | \n", + "3 | \n", + "3 | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "4.0 | \n", + "
| 891214 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891215 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 891216 | \n", + "3.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 891217 | \n", + "2.0 | \n", + "1 | \n", + "4.0 | \n", + "3 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 891218 | \n", + "2.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "2.0 | \n", + "3.0 | \n", + "
| 891219 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891220 | \n", + "4.0 | \n", + "1 | \n", + "1.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "
891221 rows × 79 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "0 | \n", + "NaN | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "963.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
2 rows × 57 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "0 | \n", + "NaN | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "2.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 227 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "HEALTH_TYP | \n", + "RETOURTYP_BK_S | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "3.0 | \n", + "1.0 | \n", + "... | \n", + "963.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "712.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "3.0 | \n", + "5.0 | \n", + "... | \n", + "435.0 | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "1300.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
4 rows × 56 columns
\n", + "| \n", + " | GREEN_AVANTGARDE | \n", + "CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "1.057812 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "0.586011 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "0.655880 | \n", + "
| 1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0.302898 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "0.586011 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-0.824992 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.530214 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "0.807528 | \n", + "0.263572 | \n", + "1.396317 | \n", + "
| 3 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "2.071381 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "0.381459 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-0.084556 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.769080 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "0.807528 | \n", + "0.263572 | \n", + "-0.084556 | \n", + "
| 5 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.441249 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "0.586011 | \n", + "-1.215167 | \n", + "-0.171975 | \n", + "-0.824992 | \n", + "
| 6 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.301635 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-0.607522 | \n", + "-0.084556 | \n", + "
| 7 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "-0.244490 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-1.565428 | \n", + "
| 8 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.563298 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "-0.984345 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "0.807528 | \n", + "0.263572 | \n", + "1.396317 | \n", + "
| 9 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.029204 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "0.586011 | \n", + "0.807528 | \n", + "0.263572 | \n", + "-0.084556 | \n", + "
10 rows × 227 columns
\n", + "| \n", + " | 0 | \n", + "
|---|---|
| PLZ8_ANTG3 | \n", + "0.222606 | \n", + "
| PLZ8_ANTG4 | \n", + "0.215934 | \n", + "
| ORTSGR_KLS9 | \n", + "0.198526 | \n", + "
| EWDICHTE | \n", + "0.195974 | \n", + "
| HH_EINKOMMEN_SCORE | \n", + "0.190977 | \n", + "
| FINANZ_SPARER | \n", + "0.155443 | \n", + "
| FINANZ_HAUSBAUER | \n", + "0.152013 | \n", + "
| KBA05_ANTG4 | \n", + "0.151090 | \n", + "
| PLZ8_ANTG2 | \n", + "0.148548 | \n", + "
| ARBEIT | \n", + "0.141607 | \n", + "
| \n", + " | 0 | \n", + "
|---|---|
| MOBI_REGIO | \n", + "-0.239428 | \n", + "
| KBA05_ANTG1 | \n", + "-0.222922 | \n", + "
| FINANZ_MINIMALIST | \n", + "-0.222529 | \n", + "
| PLZ8_ANTG1 | \n", + "-0.221995 | \n", + "
| KBA05_GBZ | \n", + "-0.214801 | \n", + "
| PLZ8_GBZ | \n", + "-0.166337 | \n", + "
| INNENSTADT | \n", + "-0.165851 | \n", + "
| KONSUMNAEHE | \n", + "-0.165035 | \n", + "
| ALTERSKATEGORIE_GROB | \n", + "-0.137991 | \n", + "
| BALLRAUM | \n", + "-0.128487 | \n", + "
| \n", + " | 1 | \n", + "
|---|---|
| ALTERSKATEGORIE_GROB | \n", + "0.252765 | \n", + "
| SEMIO_ERL | \n", + "0.235743 | \n", + "
| FINANZ_VORSORGER | \n", + "0.217776 | \n", + "
| SEMIO_LUST | \n", + "0.175344 | \n", + "
| RETOURTYP_BK_S | \n", + "0.161684 | \n", + "
| SEMIO_KRIT | \n", + "0.130653 | \n", + "
| SEMIO_KAEM | \n", + "0.122912 | \n", + "
| FINANZ_HAUSBAUER | \n", + "0.122652 | \n", + "
| W_KEIT_KIND_HH | \n", + "0.118632 | \n", + "
| PLZ8_ANTG3 | \n", + "0.104754 | \n", + "
| \n", + " | 1 | \n", + "
|---|---|
| SEMIO_REL | \n", + "-0.262923 | \n", + "
| SEMIO_PFLICHT | \n", + "-0.231305 | \n", + "
| SEMIO_KULT | \n", + "-0.225357 | \n", + "
| SEMIO_TRADV | \n", + "-0.225101 | \n", + "
| FINANZ_SPARER | \n", + "-0.223603 | \n", + "
| FINANZ_UNAUFFAELLIGER | \n", + "-0.217697 | \n", + "
| FINANZ_ANLEGER | \n", + "-0.195253 | \n", + "
| SEMIO_FAM | \n", + "-0.184628 | \n", + "
| ONLINE_AFFINITAET | \n", + "-0.164147 | \n", + "
| SEMIO_RAT | \n", + "-0.163079 | \n", + "
| \n", + " | 2 | \n", + "
|---|---|
| SEMIO_VERT | \n", + "0.345306 | \n", + "
| SEMIO_SOZ | \n", + "0.256961 | \n", + "
| SEMIO_FAM | \n", + "0.242939 | \n", + "
| SEMIO_KULT | \n", + "0.220989 | \n", + "
| FINANZ_MINIMALIST | \n", + "0.162318 | \n", + "
| RETOURTYP_BK_S | \n", + "0.123113 | \n", + "
| FINANZ_VORSORGER | \n", + "0.107471 | \n", + "
| W_KEIT_KIND_HH | \n", + "0.099203 | \n", + "
| ALTERSKATEGORIE_GROB | \n", + "0.095271 | \n", + "
| SEMIO_LUST | \n", + "0.081573 | \n", + "
| \n", + " | 2 | \n", + "
|---|---|
| ANREDE_KZ | \n", + "-0.364546 | \n", + "
| SEMIO_KAEM | \n", + "-0.334261 | \n", + "
| SEMIO_DOM | \n", + "-0.311411 | \n", + "
| SEMIO_KRIT | \n", + "-0.264220 | \n", + "
| SEMIO_RAT | \n", + "-0.227216 | \n", + "
| FINANZ_ANLEGER | \n", + "-0.195261 | \n", + "
| SEMIO_ERL | \n", + "-0.158497 | \n", + "
| FINANZ_SPARER | \n", + "-0.111787 | \n", + "
| FINANZ_UNAUFFAELLIGER | \n", + "-0.103077 | \n", + "
| SEMIO_TRADV | \n", + "-0.097060 | \n", + "
| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "-1 | \n", + "4 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "-1 | \n", + "4 | \n", + "2 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
3 rows × 85 columns
\n", + "| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "4.0 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "NaN | \n", + "4.0 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "NaN | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
| 3 | \n", + "1.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 4 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 6 | \n", + "2.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "
| 7 | \n", + "1.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 8 | \n", + "2.0 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "8.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "1.0 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
10 rows × 85 columns
\n", + "| \n", + " | CJT_GESAMTTYP | \n", + "FINANZTYP | \n", + "GFK_URLAUBERTYP | \n", + "LP_FAMILIE_FEIN | \n", + "LP_FAMILIE_GROB | \n", + "LP_STATUS_FEIN | \n", + "LP_STATUS_GROB | \n", + "NATIONALITAET_KZ | \n", + "SHOPPER_TYP | \n", + "SOHO_KZ | \n", + "VERS_TYP | \n", + "ZABEOTYP | \n", + "GEBAEUDETYP | \n", + "OST_WEST_KZ | \n", + "CAMEO_DEUG_2015 | \n", + "CAMEO_DEU_2015 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "5.0 | \n", + "2 | \n", + "4.0 | \n", + "2.0 | \n", + "2.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "3.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "1.0 | \n", + "W | \n", + "1 | \n", + "1A | \n", + "
| 1 | \n", + "NaN | \n", + "2 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "1.0 | \n", + "3.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "2.0 | \n", + "2 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3 | \n", + "8.0 | \n", + "W | \n", + "5 | \n", + "5D | \n", + "
| 3 | \n", + "2.0 | \n", + "6 | \n", + "10.0 | \n", + "NaN | \n", + "NaN | \n", + "9.0 | \n", + "4.0 | \n", + "1.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "1 | \n", + "2.0 | \n", + "W | \n", + "4 | \n", + "4C | \n", + "
| 4 | \n", + "6.0 | \n", + "2 | \n", + "2.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "W | \n", + "7 | \n", + "7B | \n", + "
| \n", + " | CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "FINANZTYP_3 | \n", + "... | \n", + "CAMEO_DEU_2015_8A | \n", + "CAMEO_DEU_2015_8B | \n", + "CAMEO_DEU_2015_8C | \n", + "CAMEO_DEU_2015_8D | \n", + "CAMEO_DEU_2015_9A | \n", + "CAMEO_DEU_2015_9B | \n", + "CAMEO_DEU_2015_9C | \n", + "CAMEO_DEU_2015_9D | \n", + "CAMEO_DEU_2015_9E | \n", + "CAMEO_DEU_2015_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 147 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 15 | \n", + "LP_LEBENSPHASE_FEIN | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 16 | \n", + "LP_LEBENSPHASE_GROB | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 22 | \n", + "PRAEGENDE_JUGENDJAHRE | \n", + "person | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 56 | \n", + "WOHNLAGE | \n", + "building | \n", + "mixed | \n", + "[-1] | \n", + "
| 59 | \n", + "CAMEO_INTL_2015 | \n", + "microcell_rr4 | \n", + "mixed | \n", + "[-1,XX] | \n", + "
| 64 | \n", + "KBA05_BAUMAX | \n", + "microcell_rr3 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 79 | \n", + "PLZ8_BAUMAX | \n", + "macrocell_plz8 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "
|---|---|---|
| 0 | \n", + "50.0 | \n", + "avantgarde | \n", + "
| 1 | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "50.0 | \n", + "avantgarde | \n", + "
| 3 | \n", + "40.0 | \n", + "mainstream | \n", + "
| 4 | \n", + "70.0 | \n", + "mainstream | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|
| 0 | \n", + "avantgarde | \n", + "50.0 | \n", + "1 | \n", + "3 | \n", + "
| 1 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "avantgarde | \n", + "50.0 | \n", + "3 | \n", + "4 | \n", + "
| 3 | \n", + "mainstream | \n", + "40.0 | \n", + "2 | \n", + "4 | \n", + "
| 4 | \n", + "mainstream | \n", + "70.0 | \n", + "4 | \n", + "1 | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement_avantgarde | \n", + "PRAEGENDE_JUGENDJAHRE_movement_mainstream | \n", + "PRAEGENDE_JUGENDJAHRE_movement_nan | \n", + "PRAEGENDE_JUGENDJAHRE_decade_40.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_50.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_60.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_70.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_80.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_90.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_nan | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 22 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1.0 | \n", + "... | \n", + "1201.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "1.0 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
2 rows × 57 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "1.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "2.0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "2.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 226 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "HEALTH_TYP | \n", + "RETOURTYP_BK_S | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1.0 | \n", + "5.0 | \n", + "... | \n", + "1201.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 2 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "2.0 | \n", + "5.0 | \n", + "... | \n", + "433.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "3.0 | \n", + "5.0 | \n", + "... | \n", + "513.0 | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 5 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "1167.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
4 rows × 56 columns
\n", + "| \n", + " | GREEN_AVANTGARDE | \n", + "CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "1.773626 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-2.226515 | \n", + "-1.478616 | \n", + "-1.565428 | \n", + "
| 1 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "-0.536230 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "1.38779 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-1.209678 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-0.084556 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "-0.295620 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-1.565428 | \n", + "
| 3 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1.671367 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-0.203820 | \n", + "0.699119 | \n", + "1.396317 | \n", + "
| 4 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "2.071381 | \n", + "0.791700 | \n", + "-0.908009 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-0.824992 | \n", + "
| 5 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.391864 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "-0.607522 | \n", + "-0.084556 | \n", + "
| 6 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "1.487902 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-0.203820 | \n", + "0.263572 | \n", + "0.655880 | \n", + "
| 7 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0.035219 | \n", + "1.814461 | \n", + "-0.908009 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-0.171975 | \n", + "-1.565428 | \n", + "
| 8 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1.782649 | \n", + "0.791700 | \n", + "-1.997396 | \n", + "-1.65949 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "1.483855 | \n", + "-2.226515 | \n", + "-1.914163 | \n", + "-1.565428 | \n", + "
| 9 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.091101 | \n", + "-1.253822 | \n", + "1.270764 | \n", + "1.38779 | \n", + "0.381459 | \n", + "1.440275 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "1.134666 | \n", + "1.396317 | \n", + "
10 rows × 226 columns
\n", + "| \n", + " | Cluster | \n", + "
|---|---|
| 0 | \n", + "0.150381 | \n", + "
| 1 | \n", + "0.116970 | \n", + "
| 2 | \n", + "0.109083 | \n", + "
| 3 | \n", + "0.085024 | \n", + "
| 4 | \n", + "0.083069 | \n", + "
| 5 | \n", + "0.076155 | \n", + "
| 6 | \n", + "0.074252 | \n", + "
| 7 | \n", + "0.072013 | \n", + "
| 8 | \n", + "0.069232 | \n", + "
| 9 | \n", + "0.052604 | \n", + "
| 10 | \n", + "0.045414 | \n", + "
| 11 | \n", + "0.025454 | \n", + "
| 13 | \n", + "0.013002 | \n", + "
| 14 | \n", + "0.010118 | \n", + "
| 15 | \n", + "0.007621 | \n", + "
| 16 | \n", + "0.006639 | \n", + "
| 17 | \n", + "0.002755 | \n", + "
| 18 | \n", + "0.000215 | \n", + "
In this project, you will apply unsupervised learning techniques to identify segments of the population that form the core customer base for a mail-order sales company in Germany. These segments can then be used to direct marketing campaigns towards audiences that will have the highest expected rate of returns. The data that you will use has been provided by our partners at Bertelsmann Arvato Analytics, and represents a real-life data science task.
+This notebook will help you complete this task by providing a framework within which you will perform your analysis steps. In each step of the project, you will see some text describing the subtask that you will perform, followed by one or more code cells for you to complete your work. Feel free to add additional code and markdown cells as you go along so that you can explore everything in precise chunks. The code cells provided in the base template will outline only the major tasks, and will usually not be enough to cover all of the minor tasks that comprise it.
+It should be noted that while there will be precise guidelines on how you should handle certain tasks in the project, there will also be places where an exact specification is not provided. There will be times in the project where you will need to make and justify your own decisions on how to treat the data. These are places where there may not be only one way to handle the data. In real-life tasks, there may be many valid ways to approach an analysis task. One of the most important things you can do is clearly document your approach so that other scientists can understand the decisions you've made.
+At the end of most sections, there will be a Markdown cell labeled Discussion. In these cells, you will report your findings for the completed section, as well as document the decisions that you made in your approach to each subtask. Your project will be evaluated not just on the code used to complete the tasks outlined, but also your communication about your observations and conclusions at each stage.
+ +# import libraries here; add more as necessary
+import numpy as np
+import pandas as pd
+import matplotlib.pyplot as plt
+import seaborn as sns
+
+# magic word for producing visualizations in notebook
+%matplotlib inline
+There are four files associated with this project (not including this one):
+Udacity_AZDIAS_Subset.csv: Demographics data for the general population of Germany; 891211 persons (rows) x 85 features (columns).Udacity_CUSTOMERS_Subset.csv: Demographics data for customers of a mail-order company; 191652 persons (rows) x 85 features (columns).Data_Dictionary.md: Detailed information file about the features in the provided datasets.AZDIAS_Feature_Summary.csv: Summary of feature attributes for demographics data; 85 features (rows) x 4 columnsEach row of the demographics files represents a single person, but also includes information outside of individuals, including information about their household, building, and neighborhood. You will use this information to cluster the general population into groups with similar demographic properties. Then, you will see how the people in the customers dataset fit into those created clusters. The hope here is that certain clusters are over-represented in the customers data, as compared to the general population; those over-represented clusters will be assumed to be part of the core userbase. This information can then be used for further applications, such as targeting for a marketing campaign.
+To start off with, load in the demographics data for the general population into a pandas DataFrame, and do the same for the feature attributes summary. Note for all of the .csv data files in this project: they're semicolon (;) delimited, so you'll need an additional argument in your read_csv() call to read in the data properly. Also, considering the size of the main dataset, it may take some time for it to load completely.
Once the dataset is loaded, it's recommended that you take a little bit of time just browsing the general structure of the dataset and feature summary file. You'll be getting deep into the innards of the cleaning in the first major step of the project, so gaining some general familiarity can help you get your bearings.
+ +# Load in the general demographics data.
+azdias = pd.read_csv('Udacity_AZDIAS_Subset.csv', sep=';')
+
+# Load in the feature summary file.
+feat_info = pd.read_csv('AZDIAS_Feature_Summary.csv', sep=';')
+# Check the structure of the data after it's loaded (e.g. print the number of
+# rows and columns, print the first few rows).
+
+azdias_shape=azdias.shape
+feat_shape=feat_info.shape
+
+print(f'azdias shape is {azdias_shape}. feat shape is {feat_shape}')
+
+azdias.head(10)
+
+feat_info.head(5)
+
++Tip: Add additional cells to keep everything in reasonably-sized chunks! Keyboard shortcut
+esc --> a(press escape to enter command mode, then press the 'A' key) adds a new cell before the active cell, andesc --> badds a new cell after the active cell. If you need to convert an active cell to a markdown cell, useesc --> mand to convert to a code cell, useesc --> y.
The feature summary file contains a summary of properties for each demographics data column. You will use this file to help you make cleaning decisions during this stage of the project. First of all, you should assess the demographics data in terms of missing data. Pay attention to the following points as you perform your analysis, and take notes on what you observe. Make sure that you fill in the Discussion cell with your findings and decisions at the end of each step that has one!
+The fourth column of the feature attributes summary (loaded in above as feat_info) documents the codes from the data dictionary that indicate missing or unknown data. While the file encodes this as a list (e.g. [-1,0]), this will get read in as a string object. You'll need to do a little bit of parsing to make use of it to identify and clean the data. Convert data that matches a 'missing' or 'unknown' value code into a numpy NaN value. You might want to see how much data takes on a 'missing' or 'unknown' code, and how much data is naturally missing, as a point of interest.
As one more reminder, you are encouraged to add additional cells to break up your analysis into manageable chunks.
+ +The following will replace the indexes with np.na in the dataframe:
+ +feat_list = feat_info['missing_or_unknown'].tolist()
+missing_list = []
+
+for i in feat_list:
+ subcount = 0
+ i = i.replace('[', '')
+ i = i.replace(']', '')
+ i = i.split(',')
+ missing_list.append(i)
+def replace(value, items, **kwargs):
+ for i in items:
+ try:
+ if value == np.int(i):
+ return np.nan
+ else:
+ pass
+ except ValueError:
+ if value == str(i):
+ return np.nan
+ else:
+ pass
+ return value
+for col, index in zip(azdias, range(len(missing_list))):
+ print(col, index)
+ azdias.iloc[:,index] = azdias.iloc[:,index].apply(replace, items=missing_list[index], axis=1)
+azdias.head(20)
+How much missing data is present in each column? There are a few columns that are outliers in terms of the proportion of values that are missing. You will want to use matplotlib's hist() function to visualize the distribution of missing value counts to find these columns. Identify and document these columns. While some of these columns might have justifications for keeping or re-encoding the data, for this project you should just remove them from the dataframe. (Feel free to make remarks about these outlier columns in the discussion, however!)
For the remaining features, are there any patterns in which columns have, or share, missing data?
+ +Rather than using a histogram which is cumbersome to plot, we can achieve the same result by finding how many missing values make up the entire column. We can sort this in descending order and we can see which columns have the most missing values.
+ +# Perform an assessment of how much missing data there is in each column of the
+# dataset.
+import seaborn as sns
+import matplotlib.pyplot as plt
+
+null_col_count = azdias.isnull().sum(axis=0)
+# print(null_col_count)
+ax_rows = azdias.shape[0]
+def findTotal(value, total):
+ return value/total
+anomalies = null_col_count.apply(findTotal, total=ax_rows).sort_values(ascending=False)
+There are six columns that I would consdier to be anomalies in terms of missing values, they are:
+ +anomalies[0:6]
+We can drop these columns:
+ +azdias.drop(['TITEL_KZ', 'AGER_TYP', 'KK_KUNDENTYP', 'KBA05_BAUMAX', 'GEBURTSJAHR', 'ALTER_HH'], axis=1, inplace=True)
+assert azdias_shape[1]-6 == azdias.shape[1]
+To find patterns we can use seaborn heatmap with pd.isnull()
+ +azdias.shape[1]
+plt.subplots(figsize=(20,15))
+sns.heatmap(azdias.iloc[:,0:30].isnull(), cbar=False)
+plt.subplots(figsize=(20,15))
+sns.heatmap(azdias.iloc[:,30:60].isnull(), cbar=False)
+plt.subplots(figsize=(20,15))
+sns.heatmap(azdias.iloc[:,60:80].isnull(), cbar=False)
+# Remove the outlier columns from the dataset. (You'll perform other data
+# engineering tasks such as re-encoding and imputation later.)
+
+columnList = azdias.columns.values
+columnPatternIndexes = [12, 13, 14, 15 ,16 , 19, 20, 36, 37, 38, 40, 41, 43, 44, 46,
+ 46, 47, 48, 49, 50 ,51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78]
+print(f'Total no. of columns with pattern in nan values: {len(columnPatternIndexes)}')
+print(f'Total no. of columns without pattern in nan values: {len(columnList)-len(columnPatternIndexes)}')
+# print(f'{anomalies[6:]}')
+In total I found 6 columns that I determined to have unusually high levels of nan values for the data and as such I dropped them from the dataframe.
+I found 47 columns that appear to have a pattern in missing data. We can see that this pattern is fairly consistent throughout the dataset.
+There are a lot of columns in this data set, however looking through the data dictionary I can see that many of the categories are of the form:
+N (detailed scale) or (rough scale)
+where N could be anything from Wealth status to family. As the data is looking at regional areas, it makes sense that if data is missing for one area, it would be missing for all the other categories as well.
+For example, PLZ8_ANTG1, PLZ8_ANTG2 and PLZ8_ANTG3 all describe the number of family houses in the PLZ8 region by size of family (1-2 people, 3-5 people etc). If this information is missing in PLZ8_ANTG1, then it makes sense that is also missing in the same region for the other categories. This could explain why we see patterns throughout the entire dataset
+ +Now, you'll perform a similar assessment for the rows of the dataset. How much data is missing in each row? As with the columns, you should see some groups of points that have a very different numbers of missing values. Divide the data into two subsets: one for data points that are above some threshold for missing values, and a second subset for points below that threshold.
+In order to know what to do with the outlier rows, we should see if the distribution of data values on columns that are not missing data (or are missing very little data) are similar or different between the two groups. Select at least five of these columns and compare the distribution of values.
+countplot() function to create a bar chart of code frequencies and matplotlib's subplot() function to put bar charts for the two subplots side by side.Depending on what you observe in your comparison, this will have implications on how you approach your conclusions later in the analysis. If the distributions of non-missing features look similar between the data with many missing values and the data with few or no missing values, then we could argue that simply dropping those points from the analysis won't present a major issue. On the other hand, if the data with many missing values looks very different from the data with few or no missing values, then we should make a note on those data as special. We'll revisit these data later on. Either way, you should continue your analysis for now using just the subset of the data with few or no missing values.
+ +We can repeat what we did above but for the rows. I will transpose the dataframe and repeat the same steps as before.
+ +## Testing ignore this cell
+
+# How much data is missing in each row of the dataset?
+null_row_count = azdias.isnull().sum(axis=1)
+null_row_count = pd.DataFrame(null_row_count)
+null_row_count.columns = ['null_count']
+# null_row_count.sample(frac=1).head(30)
+# null_row_count.groupby('null_count').agg({'null_count': 'count'})
+azdiasT = azdias.transpose()
+azdiasT.head(2)
+null_row_count = azdiasT.isnull().sum(axis=0)
+
+axT_rows = azdiasT.shape[0]
+print(axT_rows)
+print(null_row_count.head(5))
+print()
+print(null_row_count.shape)
+anomaliesT_f = null_row_count.apply(findTotal, total=axT_rows).sort_values(ascending=False)
+anomaliesT_f.head(5)
+anomaliesT_f = pd.DataFrame(anomaliesT_f)
+# anomaliesT.iloc[0:5,0]
+print(anomaliesT_f.describe())
+for i in range(85, 92):
+ print(f'{i}% percentile: {anomaliesT_f.quantile(q=i*0.01)[0]:.4f}')
+limit = anomaliesT_f.quantile(q=0.9)[0]
+print(f'\nLimit is {limit}')
+As there is a much larger jump from the 89th to 90th percentile (a factor of around 113%) I would say our threshold for the split for the rows should be those which have 43% or higher missing values of the total data in the top category (denoted as anomaliesU), and those that are less than 43% in the bottom category (denoted as anomaliesL).
+ +import collections
+print(collections.Counter(null_row_count))
+We will now split the dataframe into 2 categories, and then compare the columns of the original matrix like before
+ +# Write code to divide the data into two subsets based on the number of missing
+# values in each row.a
+anomaliesU = anomaliesT_f[(anomaliesT_f>=limit)]
+anomaliesU.dropna(inplace=True)
+print(anomaliesU.describe())
+anomaliesL = anomaliesT_f[(anomaliesT_f<limit)]
+anomaliesL.dropna(inplace=True)
+print(anomaliesL.describe())
+We check that our dataframes match the original row totals:
+ +assert ((anomaliesL.shape[0] + anomaliesU.shape[0]) == azdias.shape[0])
+print(f'We have droped {100*anomaliesU.shape[0]/azdias.shape[0]:.0f}% of rows')
+As we took the 90th percentile, this confirms we have dropped the right amount. I am unsure at this stage if we have dropped too much. For the sake of the project I will commit to the values I initially chose, and only revise this later if we see a huge detriment to the model.
+ +# anomaliesT.iloc[anomaliesU.index]
+anomaliesU = azdias.iloc[anomaliesU.index]
+print(anomaliesU.shape)
+print(anomaliesU.sample(frac=True).head(10))
+anomaliesL = azdias.iloc[anomaliesL.index]
+print(anomaliesL.shape)
+print(anomaliesL.sample(frac=True).head(10))
+As directed, we will now look at collumns against these two groups. Recall that we have columnPatternIndexes as a list of columns that have a lot of missing values from before, we can drop these columns and sample at random against the remaining columns to see if we can see anything interesting.
+ +# Compare the distribution of values for at least five columns where there are
+# no or few missing values, between the two subsets.
+print(f'Number of cols to drop: {len(columnPatternIndexes)}')
+anomaliesL_compare = anomaliesL.drop(anomaliesL.iloc[:,columnPatternIndexes], axis=1)
+print(f'Number of cols kept: {anomaliesL_compare.shape[1]}')
+anomaliesL_compare.head(10)
+import random
+
+def dataComparison(df):
+ cols = random.sample(list(df.columns.values), 5)
+ f, axes = plt.subplots(1, 5, figsize=(25,4))
+ for i in range(0, 5):
+ sns.countplot(x=cols[i], data=df.fillna('Missing'), ax=axes[i])
+Let's look at the data distribution for the Lower group (those that don't have many zero values across the rows)
+ +import itertools
+
+for _ in itertools.repeat(None, 5):
+ dataComparison(anomaliesL_compare)
+Now the same for the upper group
+ +print(f'Number of cols to drop: {len(columnPatternIndexes)}')
+anomaliesU_compare = anomaliesU.drop(anomaliesU.iloc[:,columnPatternIndexes], axis=1)
+print(f'Number of cols kept: {anomaliesU_compare.shape[1]}')
+anomaliesU_compare.head(10)
+for _ in itertools.repeat(None, 5):
+ dataComparison(anomaliesU_compare)
+There is a huge distance that is faily easy to visualise from the above graphs. We can see that the group that is below the threshold looks very reasonable. Without doing any specific statistical analysis we can see that across most columns, the data is fairly evenly spread. With a good mix between the columns - the point to take away is across the columns, the data doesn't look to follow a pattern.
+Looking at the group which contains the rows above the threshold we can see immediately the data is largely dominated by a single value in each column. Looking at the column ANZ_HAUSHALTE_AKTIV we can see that this column is dominated with missing values exlusively from this rows. This means that all the information we have for this column will come from the other set of rows.
+This is a very interesting factor in our data. If we think about it, if a row has a large number of missing values, then there must be only a few cells in that row that contain the information. If we take the columns that we know contain mostly data and not many nan values (as we have exlucded both of these earlier on), then we can see that these rows account for the dominating value.
+We can see this from the above graph where SEMIO_Lust is dominated with the value 5 in these upper rows, whereas in the lower group SEMIO_Lust is fairly evenly spread out, with 6, 7 being the two highest values and 5 actually being second from the bottom.
+ +Checking for missing data isn't the only way in which you can prepare a dataset for analysis. Since the unsupervised learning techniques to be used will only work on data that is encoded numerically, you need to make a few encoding changes or additional assumptions to be able to make progress. In addition, while almost all of the values in the dataset are encoded using numbers, not all of them represent numeric values. Check the third column of the feature summary (feat_info) for a summary of types of measurement.
In the first two parts of this sub-step, you will perform an investigation of the categorical and mixed-type features and make a decision on each of them, whether you will keep, drop, or re-encode each. Then, in the last part, you will create a new data frame with only the selected and engineered columns.
+Data wrangling is often the trickiest part of the data analysis process, and there's a lot of it to be done here. But stick with it: once you're done with this step, you'll be ready to get to the machine learning parts of the project!
+ +# How many features are there of each data type?
+collections.Counter(feat_info['type'].values)
+For categorical data, you would ordinarily need to encode the levels as dummy variables. Depending on the number of categories, perform one of the following:
+# Assess categorical variables: which are binary, which are multi-level, and
+# which one needs to be re-encoded?
+feat_info_cat = feat_info[(feat_info['type']=='categorical')]
+feat_info_cat
+We pick the attribute column, which gives us the columns for our data.
+We need to remember to drop the columns from this list that we removed at the start of the project, as they were mostly missing values.
+ +categorical_cols = feat_info_cat['attribute'].tolist()
+
+drop_cols = ['AGER_TYP', 'TITEL_KZ', 'KK_KUNDENTYP']
+
+for i in drop_cols:
+ categorical_cols.remove(i)
+
+print(categorical_cols)
+print(len(categorical_cols))
+We will drop from this list the columns that contain just two values. Note I am dropping them if the length of their unique values is equal to 2. This is because we know that we do not have any columns that have a length of two with non numeric values. This method would not extend to a case where we have 2 non-numeric values
+ +# Re-encode categorical variable(s) to be kept in the analysis.
+for i in categorical_cols:
+ print(f'{i}\nValues: {azdias[i].unique()}\nLength: {len(azdias[i].unique())}')
+ if len(azdias[i].unique()) == 2:
+ categorical_cols.remove(i)
+print('\n Columns to reencode as dummies:', categorical_cols)
+len(categorical_cols)
+azdias[categorical_cols].head(5)
+azdias_cat_dummies = pd.get_dummies(azdias[categorical_cols].astype(str))
+azdias_cat_dummies.head(5)
+There were 18 of the type 'categorical' that we needed to work with. They were:
+['ANREDE_KZ', 'CJT_GESAMTTYP', 'FINANZTYP', 'GFK_URLAUBERTYP', 'GREEN_AVANTGARDE', 'LP_FAMILIE_FEIN', 'LP_FAMILIE_GROB', 'LP_STATUS_FEIN', 'LP_STATUS_GROB', 'NATIONALITAET_KZ', 'SHOPPER_TYP', 'SOHO_KZ', 'VERS_TYP', 'ZABEOTYP', 'GEBAEUDETYP', 'OST_WEST_KZ', 'CAMEO_DEUG_2015', 'CAMEO_DEU_2015']
+ANREDE_KZ was binary numerical so we were able to drop it.
+CAMEO_DEU_2015 had multiple strings as its values. We will use dummy variables on this.
+The remaining 16 columns were multi-level categoricals. I used pd.get_dummies() to convert these to dummy variables.
+These 16 become 148 columns of dummy variables. All we need to do now is to drop the columns from the original dataframe, and replace them with these.
+ +There are a handful of features that are marked as "mixed" in the feature summary that require special treatment in order to be included in the analysis. There are two in particular that deserve attention; the handling of the rest are up to your own choices:
+Be sure to check Data_Dictionary.md for the details needed to finish these tasks.
feat_info_mixed = feat_info[(feat_info['type']=='mixed')]
+feat_info_mixed
+mixed_cols = feat_info_mixed['attribute'].tolist()
+
+# drop_cols = ['AGER_TYP', 'TITEL_KZ', 'KK_KUNDENTYP']
+
+# for i in drop_cols:
+# mixed_cols.remove(i)
+
+print(mixed_cols)
+print(len(mixed_cols))
+def PRAEGENDE_JUGENDJAHRE_decade(value, **kwargs):
+ if (value == 1) or (value == 2):
+ return 40
+ elif (value == 3) or (value == 4):
+ return 50
+ elif (value == 5) or (value == 6) or (value == 7):
+ return 60
+ elif (value == 8) or (value == 9):
+ return 70
+ elif (value == 10) or (value == 11):
+ return 80
+ elif (value == 12) or (value == 13):
+ return 80
+ elif (value == 14) or (value == 15):
+ return 90
+ else:
+ return value
+azdias['PRAEGENDE_JUGENDJAHRE_decade'] = azdias.loc[:,'PRAEGENDE_JUGENDJAHRE'].apply(PRAEGENDE_JUGENDJAHRE_decade, axis=1)
+azdias['PRAEGENDE_JUGENDJAHRE_decade'].head(5)
+def PRAEGENDE_JUGENDJAHRE_movement(value, **kwargs):
+ if (value == 1) or (value == 3) or (value == 5) or (value == 8) or (value == 10) or (value == 12) or (value == 14):
+ return 'mainstream'
+ elif (value == 2) or (value == 4) or (value == 6) or (value == 7) or (value == 9) or (value == 11) or (value == 13) or (value == 15):
+ return 'avantgarde'
+ else:
+ return value
+azdias['PRAEGENDE_JUGENDJAHRE_movement'] = azdias.loc[:,'PRAEGENDE_JUGENDJAHRE'].apply(PRAEGENDE_JUGENDJAHRE_movement, axis=1)
+azdias['PRAEGENDE_JUGENDJAHRE_movement'].head(5)
+azdias.iloc[0:5, -2:]
+Similar process to the one above
+ +def CAMEO_INTL_2015_wealth(value, **kwargs):
+ if pd.isnull(value):
+ return value
+ else:
+ return value[0]
+
+def CAMEO_INTL_2015_life(value, **kwargs):
+ if pd.isnull(value):
+ return value
+ else:
+ return value[-1]
+azdias['CAMEO_INTL_2015_wealth'] = azdias.loc[:,'CAMEO_INTL_2015'].apply(CAMEO_INTL_2015_wealth, axis=1)
+azdias['CAMEO_INTL_2015_wealth'].head(5)
+azdias['CAMEO_INTL_2015_life'] = azdias.loc[:,'CAMEO_INTL_2015'].apply(CAMEO_INTL_2015_life, axis=1)
+azdias['CAMEO_INTL_2015_life'].head(5)
+Let's verify that we did it correctly:
+ +azdias['CAMEO_INTL_2015'].iloc[0:5][:]
+Let's create our dummy variables form these new columns
+ +newCols = ['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade', 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life']
+azdias[newCols].head(5)
+azdias_mixed_dummies = pd.get_dummies(azdias[newCols].astype(str))
+azdias_mixed_dummies.head(5)
+
+(Double-click this cell and replace this text with your own text, reporting your findings and decisions regarding mixed-value features. Which ones did you keep, which did you drop, and what engineering steps did you perform?)
+I performed the following steps:
+We converted the remaining categories to dummy variables
+For the mixed data
+All that remains is to drop the columns in categorical_cols and mixed_cols and replace them with azdias_cat_dummies and azdias_mixed_dummies
+For the sake of simplicity I will drop the remaining mixed columns and not do any further work on them
+ +In order to finish this step up, you need to make sure that your data frame now only has the columns that you want to keep. To summarize, the dataframe should consist of the following:
+Make sure that for any new columns that you have engineered, that you've excluded the original columns from the final dataset. Otherwise, their values will interfere with the analysis later on the project. For example, you should not keep "PRAEGENDE_JUGENDJAHRE", since its values won't be useful for the algorithm: only the values derived from it in the engineered features you created should be retained. As a reminder, your data should only be from the subset with few or no missing values.
+ +# If there are other re-engineering tasks you need to perform, make sure you
+# take care of them here. (Dealing with missing data will come in step 2.1.)
+
+azdias.head(2)
+azdias.drop(['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade', 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life'], axis=1)
+We need to drop ['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade', + 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life']
+ +azdias.drop(['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade',
+ 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life'], axis=1, inplace=True)
+len(azdias.columns)
+print(len(categorical_cols))
+print(len(mixed_cols))
+print()
+print(len(azdias_cat_dummies.columns))
+print(len(azdias_mixed_dummies.columns))
+We have 79 cols which is what we started with after we dropped the mostly empty cols.
+We need to do the following:
+We know we need to drop 16+6 = 22 columns from azdias (It's 6 because we dropped one of these right at the start)
+We know we need to add 148+22 = 170 columns to azdias
+We know we will end up with 79-22+170=227 columns at the end
+ +mixed_cols.remove('KBA05_BAUMAX')
+mixed_cols
+azdias.drop(categorical_cols, axis=1, inplace=True)
+azdias.drop(mixed_cols, axis=1, inplace=True)
+azdiastemp = azdias
+azdiastemp.head(2)
+azdiastemp = azdiastemp.join(azdias_cat_dummies)
+azdiastemp = azdiastemp.join(azdias_mixed_dummies)
+azdiastemp.head(5)
+We have 227 cols as expected
+ +Even though you've finished cleaning up the general population demographics data, it's important to look ahead to the future and realize that you'll need to perform the same cleaning steps on the customer demographics data. In this substep, complete the function below to execute the main feature selection, encoding, and re-engineering steps you performed above. Then, when it comes to looking at the customer data in Step 3, you can just run this function on that DataFrame to get the trimmed dataset in a single step.
+ +def clean_data(df):
+ """
+ Perform feature trimming, re-encoding, and engineering for demographics
+ data
+
+ INPUT: Demographics DataFrame
+ OUTPUT: Trimmed and cleaned demographics DataFrame
+ """
+
+ # Put in code here to execute all main cleaning steps:
+ # convert missing value codes into NaNs, ...
+
+
+ # remove selected columns and rows, ...
+
+
+ # select, re-encode, and engineer column values.
+
+
+ # Return the cleaned dataframe.
+
+
+Before we apply dimensionality reduction techniques to the data, we need to perform feature scaling so that the principal component vectors are not influenced by the natural differences in scale for features. Starting from this part of the project, you'll want to keep an eye on the API reference page for sklearn to help you navigate to all of the classes and functions that you'll need. In this substep, you'll need to check the following:
+.fit_transform() method to both fit a procedure to the data as well as apply the transformation to the data at the same time. Don't forget to keep the fit sklearn objects handy, since you'll be applying them to the customer demographics data towards the end of the project.# If you've not yet cleaned the dataset of all NaN values, then investigate and
+# do that now.
+
+# from sklearn.impute import SimpleImputer
+To keep things simple I will drop any row with a null value. As long as we know that our final result may suffer because of the lack of information I am happy to do this for the sake of the project. In reality I would spend more time using an Imputer (which isn't a simple thing to do if you want to do it properly), or using another ML algorithm to predict the values we are missing.
+ +azdiastemp.shape[0] - azdiastemp.dropna().shape[0]
+azdiastemp_noNa = azdiastemp.dropna()
+azdiastemp_noNa.shape
+We will lose 259,095 (30%) of our rows by dropping null values
+ +As we encoded our features from before into dummy variables, we do not need to scale these now. These are contained in the lists azdias_cat_dummies and azdias_mixed_dummies. In addition we don't need to scale GREEN_AVANTGARDE as it is a binary column with 1,0. We do need to scale ANREDE_KZ, as it is not a binary numbered value.
+ +azdiastemp.shape
+
+azdiastemp_noNa.drop(azdias_cat_dummies.columns, axis=1, inplace=True)
+azdiastemp_noNa.drop(azdias_mixed_dummies.columns, axis=1, inplace=True)
+azdiastemp_noNa.drop('GREEN_AVANTGARDE', axis=1, inplace=True)
+azdiastemp_noNa.head(4)
+from sklearn.preprocessing import StandardScaler
+
+scaler = StandardScaler()
+scaler.fit(azdiastemp_noNa)
+azdiastemp_noNa_scaled = pd.DataFrame(scaler.transform(azdiastemp_noNa), columns=azdiastemp_noNa.columns)
+azdiastemp_noNa_scaled.isnull().values.any()
+azdiastemp_noNa_scaled.shape
+azdiastemp_noNa.shape
+azdiastemp_noNa = azdiastemp.dropna()
+azdiastemp_noNa.shape
+azdiastemp_noNa.drop(azdiastemp_noNa_scaled.columns, axis=1, inplace=True)
+azdiastemp_noNa.isnull().values.any()
+azdiastemp_noNa.index
+print(azdiastemp_noNa.shape)
+print(azdiastemp_noNa_scaled.shape)
+azdiastemp_noNa_final = pd.merge(azdiastemp_noNa.reset_index(), azdiastemp_noNa_scaled.reset_index(), right_index=True, left_index=True)
+azdiastemp_noNa_final.isnull().values.any()
+azdiastemp_noNa_final.drop(['index_x', 'index_y'], axis=1, inplace=True)
+print(azdiastemp_noNa_final.shape)
+azdiastemp_noNa_final.head(10)
+My process has been explained above but we can recap here
+The idea was:
+On your scaled data, you are now ready to apply dimensionality reduction techniques.
+plot() function. Based on what you find, select a value for the number of transformed features you'll retain for the clustering part of the project.azdiastemp_noNa_final.isnull().values.any()
+Reusing some of the code from the videos here, really good way to plot the pca variance!
+ +# Apply PCA to the data.
+from sklearn.decomposition import PCA
+
+def do_pca(n_components, data):
+ '''
+ Transforms data using PCA to create n_components, and provides back the results of the
+ transformation.
+
+ INPUT: n_components - int - the number of principal components to create
+ data - the data you would like to transform
+
+ OUTPUT: pca - the pca object created after fitting the data
+ X_pca - the transformed X matrix with new number of components
+ '''
+# X = StandardScaler().fit_transform(data)
+ pca = PCA(n_components)
+# X_pca = pca.fit_transform(X)
+ X_pca = pca.fit_transform(data)
+ return pca, X_pca
+pca, df_pca = do_pca(50, azdiastemp_noNa_final)
+def scree_plot(pca):
+ '''
+ Creates a scree plot associated with the principal components
+
+ INPUT: pca - the result of instantian of PCA in scikit learn
+
+ OUTPUT:
+ None
+ '''
+ num_components=len(pca.explained_variance_ratio_)
+ ind = np.arange(num_components)
+ vals = pca.explained_variance_ratio_
+
+ plt.figure(figsize=(10, 6))
+ ax = plt.subplot(111)
+ cumvals = np.cumsum(vals)
+ ax.bar(ind, vals)
+ ax.plot(ind, cumvals)
+ for i in range(num_components):
+ ax.annotate(r"%s%%" % ((str(vals[i]*100)[:4])), (ind[i]+0.2, vals[i]), va="bottom", ha="center", fontsize=12)
+
+ ax.xaxis.set_tick_params(width=0)
+ ax.yaxis.set_tick_params(width=2, length=12)
+
+ ax.set_xlabel("Principal Component")
+ ax.set_ylabel("Variance Explained (%)")
+ plt.title('Explained Variance Per Principal Component')
+scree_plot(pca)
+# Re-apply PCA to the data while selecting for number of components to retain.
+import copy
+
+pca, df_pca = do_pca(30, azdiastemp_noNa_final)
+
+df_pca_orig = copy.deepcopy(df_pca)
+(Double-click this cell and replace this text with your own text, reporting your findings and decisions regarding dimensionality reduction. How many principal components / transformed features are you retaining for the next step of the analysis?)
+Reusing the code from the videos, we can see that the first 3 features account for around 35% of the variance of the data. We see that this variance quickly falls off as we have more and more features. From the above graph I think 30 features seems a fair number of features to retain, as this should account for around 80% of the variance in the data.
+ +Now that we have our transformed principal components, it's a nice idea to check out the weight of each variable on the first few components to see if they can be interpreted in some fashion.
+As a reminder, each principal component is a unit vector that points in the direction of highest variance (after accounting for the variance captured by earlier principal components). The further a weight is from zero, the more the principal component is in the direction of the corresponding feature. If two features have large weights of the same sign (both positive or both negative), then increases in one tend expect to be associated with increases in the other. To contrast, features with different signs can be expected to show a negative correlation: increases in one variable should result in a decrease in the other.
+def getWeights(df, pca, weightIndex, N):
+ weights = pd.DataFrame(pca.components_, columns=df.columns)
+ weights = weights.iloc[weightIndex:weightIndex+1, :].transpose()
+ posWeights = weights.sort_values(weights.columns[0], ascending=False).head(N)
+ negWeights = weights.sort_values(weights.columns[0], ascending=True).head(N)
+ return posWeights, negWeights
+# Map weights for the first principal component to corresponding feature names
+# and then print the linked values, sorted by weight.
+# HINT: Try defining a function here or in a new cell that you can reuse in the
+# other cells.
+# and then print the linked values, sorted by weight.
+p, n = getWeights(azdiastemp_noNa_final, pca, 0, 10)
+p
+n
+# Map weights for the second principal component to corresponding feature names
+# and then print the linked values, sorted by weight.
+p, n = getWeights(azdiastemp_noNa_final, pca, 1, 10)
+p
+n
+# Map weights for the third principal component to corresponding feature names
+# and then print the linked values, sorted by weight.
+p, n = getWeights(azdiastemp_noNa_final, pca, 2, 10)
+p
+n
+(Double-click this cell and replace this text with your own text, reporting your observations from detailed investigation of the first few principal components generated. Can we interpret positive and negative values from them in a meaningful way?)
+ +You've assessed and cleaned the demographics data, then scaled and transformed them. Now, it's time to see how the data clusters in the principal components space. In this substep, you will apply k-means clustering to the dataset and use the average within-cluster distances from each point to their assigned cluster's centroid to decide on a number of clusters to keep.
+.score() method might be useful here, but note that in sklearn, scores tend to be defined so that larger is better. Try applying it to a small, toy dataset, or use an internet search to help your understanding.from sklearn.cluster import KMeans
+from joblib import dump, load
+# cluster0 = KMeans(10)
+# result0 = cluster0.fit_transform(df_pca)
+# distance0 = np.min(result0, axis=1)
+# dump(cluster0, 'cluster0')
+# print(distance0)
+# cluster1 = KMeans(11)
+# result1 = cluster1.fit_transform(df_pca)
+# distance1 = np.min(result1, axis=1)
+# dump(cluster1, 'cluster1')
+# print(distance1)
+# cluster2 = KMeans(12)
+# result2 = cluster2.fit_transform(df_pca)
+# distance2 = np.min(result2, axis=1)
+# dump(cluster2, 'cluster2')
+# print(distance2)
+# cluster3 = KMeans(13)
+# result3 = cluster3.fit_transform(df_pca)
+# distance3 = np.min(result3, axis=1)
+# dump(cluster3, 'cluster3')
+# print(distance3)
+# cluster4 = KMeans(14)
+# result4 = cluster4.fit_transform(df_pca)
+# distance4 = np.min(result4, axis=1)
+# dump(cluster4, 'cluster4')
+# print(distance4)
+# cluster5 = KMeans(15)
+# result5 = cluster5.fit_transform(df_pca)
+# distance5 = np.min(result5, axis=1)
+# dump(cluster5, 'cluster5')
+# print(distance5)
+# cluster6 = KMeans(16)
+# result6 = cluster6.fit_transform(df_pca)
+# distance6 = np.min(result6, axis=1)
+# dump(cluster6, 'cluster6')
+# print(distance6)
+# cluster7 = KMeans(17)
+# result7 = cluster7.fit_transform(df_pca)
+# distance7 = np.min(result7, axis=1)
+# dump(cluster7, 'cluster7')
+# print(distance7)
+# cluster8 = KMeans(18)
+# result8 = cluster8.fit_transform(df_pca)
+# distance8 = np.min(result8, axis=1)
+# dump(cluster8, 'cluster8')
+# print(distance8)
+# cluster9 = KMeans(19)
+# result9 = cluster9.fit_transform(df_pca)
+# distance9 = np.min(result9, axis=1)
+# dump(cluster9, 'cluster9')
+# print(distance9)
+cluster0 = load('cluster0')
+cluster1 = load('cluster1')
+cluster2 = load('cluster2')
+cluster3 = load('cluster3')
+cluster4 = load('cluster4')
+cluster5 = load('cluster5')
+cluster6 = load('cluster6')
+cluster7 = load('cluster7')
+cluster8 = load('cluster8')
+cluster9 = load('cluster9')
+result0 = cluster0.transform(df_pca)
+distance0 = np.min(result0, axis=1)
+print(distance0)
+result1 = cluster1.transform(df_pca)
+distance1 = np.min(result1, axis=1)
+print(distance1)
+result2 = cluster2.transform(df_pca)
+distance2 = np.min(result2, axis=1)
+print(distance2)
+result3 = cluster3.transform(df_pca)
+distance3 = np.min(result3, axis=1)
+print(distance3)
+result4 = cluster4.transform(df_pca)
+distance4 = np.min(result4, axis=1)
+print(distance4)
+result5 = cluster5.transform(df_pca)
+distance5 = np.min(result5, axis=1)
+print(distance5)
+result6 = cluster6.transform(df_pca)
+distance6 = np.min(result6, axis=1)
+print(distance6)
+result7 = cluster7.transform(df_pca)
+distance7 = np.min(result7, axis=1)
+print(distance7)
+result8 = cluster8.transform(df_pca)
+distance8 = np.min(result8, axis=1)
+print(distance8)
+result9 = cluster9.transform(df_pca)
+distance9 = np.min(result9, axis=1)
+print(distance9)
+resultList = [distance0, distance1, distance2, distance3, distance4, distance5, distance6, distance7, distance8, distance9]
+resultListAvg = []
+for i, j in zip(resultList, range(0, len(resultList))):
+ resultListAvg.append(np.mean(i))
+ print(f'Average of {j} is: {resultListAvg[j]}')
+x = range(10, 20)
+plt.plot(x, resultListAvg)
+plt.xlabel('Num of Clusters')
+plt.ylabel('Distance to nearest cluster centre')
+Unfortunately I ran into memory issues on this VM I couldn't get any further even with refreshing the workspace. If this were a real piece of work - I would go back and optimise my code (I suspect I am wasting a lot of memory here) however I don't want to go back and change things as it currently works for this project.
+I am on my work laptop which is not powerful and I am unable to access my desktop at home. I hope you can see that the average distance to the centres is decreasing for increasing clusters!.
+I suspect that we will soon see this decrease slow down and eventually reach an optimum number of clusters.
+As such I am choosing 19 clusters for the model.
+We have already got the results for this:
+ +result9
+
+I have explained above what I've done but I will recap.
+We fitted KMeans to our final dataset starting at k=5 to k=14. Unfortunately I had to stop at k=14 due to memory problems but we can see that as we are increasing k the distance to the nearest cluster centre is decreasing. For higher k we will eventually find a sweet spot for our data.
+ +Now that you have clusters and cluster centers for the general population, it's time to see how the customer data maps on to those clusters. Take care to not confuse this for re-fitting all of the models to the customer data. Instead, you're going to use the fits from the general population to clean, transform, and cluster the customer data. In the last step of the project, you will interpret how the general population fits apply to the customer data.
+;) delimited.clean_data() function you created earlier. (You can assume that the customer demographics data has similar meaning behind missing data patterns as the general demographics data.).fit() or .fit_transform() method to re-fit the old objects, nor should you be creating new sklearn objects! Carry the data through the feature scaling, PCA, and clustering steps, obtaining cluster assignments for all of the data in the customer demographics data.# Load in the customer demographics data.
+customers = pd.read_csv('Udacity_CUSTOMERS_Subset.csv', sep=';')
+print(customers.shape)
+customers.head(3)
+# Apply preprocessing, feature transformation, and clustering from the general
+# demographics onto the customer data, obtaining cluster predictions for the
+# customer demographics data.
+# Fill in missing values:
+
+for col, index in zip(customers, range(len(missing_list))):
+ print(col, index)
+ customers.iloc[:,index] = customers.iloc[:,index].apply(replace, items=missing_list[index], axis=1)
+customers.head(10)
+# Find missing data by col
+
+null_col_count_cust = customers.isnull().sum(axis=0)
+ax_rows_cust = customers.shape[0]
+anomalies_cust = null_col_count_cust.apply(findTotal, total=ax_rows_cust).sort_values(ascending=False)
+anomalies_cust[0:10]
+In the original dataset we dropped anything below 34.8%, I will do the same here so we will drop the first six of the above list
+As we did above, I am keeping all rows regardless of how much is missing
+ +customers.drop(['TITEL_KZ', 'KK_KUNDENTYP', 'KBA05_BAUMAX', 'AGER_TYP', 'GEBURTSJAHR', 'ALTER_HH'], axis=1, inplace=True)
+assert customers.shape[1]+6 == 85
+We can now look at reencoding our categorical features
+ +categorical_cols = feat_info_cat['attribute'].tolist()
+
+drop_cols = ['AGER_TYP', 'TITEL_KZ', 'KK_KUNDENTYP']
+
+for i in drop_cols:
+ categorical_cols.remove(i)
+
+print(categorical_cols)
+print(len(categorical_cols))
+# Re-encode categorical variable(s) to be kept in the analysis.
+for i in categorical_cols:
+ print(f'{i}\nValues: {customers[i].unique()}\nLength: {len(customers[i].unique())}')
+ if len(customers[i].unique()) == 2:
+ categorical_cols.remove(i)
+print('\n Columns to reencode as dummies:', categorical_cols)
+len(categorical_cols)
+customers[categorical_cols].head(5)
+customers_cat_dummies = pd.get_dummies(customers[categorical_cols].astype(str))
+customers_cat_dummies.head(5)
+feat_info_mixed = feat_info[(feat_info['type']=='mixed')]
+feat_info_mixed
+mixed_cols = feat_info_mixed['attribute'].tolist()
+
+# drop_cols = ['AGER_TYP', 'TITEL_KZ', 'KK_KUNDENTYP']
+
+# for i in drop_cols:
+# mixed_cols.remove(i)
+
+print(mixed_cols)
+print(len(mixed_cols))
+customers['PRAEGENDE_JUGENDJAHRE_decade'] = customers.loc[:,'PRAEGENDE_JUGENDJAHRE'].apply(PRAEGENDE_JUGENDJAHRE_decade, axis=1)
+customers['PRAEGENDE_JUGENDJAHRE_decade'].head(5)
+customers['PRAEGENDE_JUGENDJAHRE_movement'] = customers.loc[:,'PRAEGENDE_JUGENDJAHRE'].apply(PRAEGENDE_JUGENDJAHRE_movement, axis=1)
+customers['PRAEGENDE_JUGENDJAHRE_movement'].head(5)
+customers.iloc[0:5, -2:]
+customers['CAMEO_INTL_2015_wealth'] = customers.loc[:,'CAMEO_INTL_2015'].apply(CAMEO_INTL_2015_wealth, axis=1)
+customers['CAMEO_INTL_2015_wealth'].head(5)
+customers['CAMEO_INTL_2015_life'] = customers.loc[:,'CAMEO_INTL_2015'].apply(CAMEO_INTL_2015_life, axis=1)
+customers['CAMEO_INTL_2015_life'].head(5)
+customers['CAMEO_INTL_2015'].iloc[0:5][:]
+newCols = ['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade', 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life']
+customers[newCols].head(5)
+customers_mixed_dummies = pd.get_dummies(customers[newCols].astype(str))
+customers_mixed_dummies.head(5)
+customers.drop(['PRAEGENDE_JUGENDJAHRE_movement', 'PRAEGENDE_JUGENDJAHRE_decade',
+ 'CAMEO_INTL_2015_wealth', 'CAMEO_INTL_2015_life'], axis=1, inplace=True)
+len(customers.columns)
+print(len(categorical_cols))
+print(len(mixed_cols))
+print()
+print(len(customers_cat_dummies.columns))
+print(len(customers_mixed_dummies.columns))
+mixed_cols.remove('KBA05_BAUMAX')
+mixed_cols
+customers.drop(categorical_cols, axis=1, inplace=True)
+customers.drop(mixed_cols, axis=1, inplace=True)
+customerstemp = customers
+customerstemp.head(2)
+customerstemp = customerstemp.join(customers_cat_dummies)
+customerstemp = customerstemp.join(customers_mixed_dummies)
+customerstemp.head(5)
+We will now apply feature scaling
+ +print(customerstemp.shape[0] - customerstemp.dropna().shape[0])
+customerstemp_noNa = customerstemp.dropna()
+customerstemp_noNa.shape
+customerstemp_noNa.drop(customers_cat_dummies.columns, axis=1, inplace=True)
+customerstemp_noNa.drop(customers_mixed_dummies.columns, axis=1, inplace=True)
+customerstemp_noNa.drop('GREEN_AVANTGARDE', axis=1, inplace=True)
+customerstemp_noNa.head(4)
+scalerCust = StandardScaler()
+scalerCust.fit(customerstemp_noNa)
+customers_noNa_scaled = pd.DataFrame(scaler.transform(customerstemp_noNa), columns=customerstemp_noNa.columns)
+customers_noNa_scaled.isnull().values.any()
+customerstemp_noNa = customerstemp.dropna()
+customerstemp_noNa.drop(customers_noNa_scaled.columns, axis=1, inplace=True)
+customerstemp_noNa.isnull().values.any()
+customerstemp_noNa_final = pd.merge(customerstemp_noNa.reset_index(), customers_noNa_scaled.reset_index(), right_index=True, left_index=True)
+customerstemp_noNa_final.isnull().values.any()
+customerstemp_noNa_final.drop(['index_x', 'index_y'], axis=1, inplace=True)
+print(customerstemp_noNa_final.shape)
+customerstemp_noNa_final.head(10)
+pca, df_pca = do_pca(30, customerstemp_noNa_final)
+df_pca.shape
+Now we can apply kmeans on our fitted model from before!
+ +cluster9
+resultCust = cluster9.transform(df_pca)
+customerClusters = cluster9.predict(df_pca)
+popClusters = cluster9.labels_
+This plot shows us the number of points in each cluster. It is not very useful as we need to scale them so they represent a percentage which we will do below
+ +testDf = pd.DataFrame(customerClusters, columns=['Cluster'])
+print(testDf.nunique())
+testDf[testDf['Cluster'] == 18]
+pd.value_counts(testDf['Cluster'])
+
+f, axes = plt.subplots(1, 2, figsize=(25, 10))
+sns.countplot(x=customerClusters, ax=axes[0])
+sns.countplot(popClusters, ax=axes[1])
+index_cust=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18]
+print(len(customerClusters))
+print(len(df_pca))
+def findClusterPerc(clusterSeries, df_pca, index=False):
+ testDf = pd.DataFrame(clusterSeries, columns=['Cluster'])
+ if index is False:
+ return pd.DataFrame((pd.DataFrame(pd.value_counts((testDf['Cluster'].values))).values/len(df_pca)), columns=['Cluster'])
+ else:
+ return pd.DataFrame((pd.DataFrame(pd.value_counts((testDf['Cluster'].values))).values/len(df_pca)), columns=['Cluster'], index=index)
+customerClustersPerc = findClusterPerc(customerClusters, df_pca, index=index_cust)
+popClustersPerc = findClusterPerc(popClusters, df_pca_orig)
+customerClustersPerc
+# popClustersPerc
+f, axes = plt.subplots(1, 2, figsize=(25, 10))
+sns.barplot(y=customerClustersPerc['Cluster'], x=customerClustersPerc.index, ax=axes[0])
+sns.barplot(y=popClustersPerc['Cluster'], x=popClustersPerc.index, ax=axes[1])
+We can see that in the left graph which represents the customer data, there are relatively more people towards the first clusters. On the right which represents our population data, it is more evenly spread out between the clusters.
+ +print(pd.DataFrame(df_pca_orig).index.max())
+print(anomaliesU_compare.index.max())
+
+
+At this point, you have clustered data based on demographics of the general population of Germany, and seen how the customer data for a mail-order sales company maps onto those demographic clusters. In this final substep, you will compare the two cluster distributions to see where the strongest customer base for the company is.
+Consider the proportion of persons in each cluster for the general population, and the proportions for the customers. If we think the company's customer base to be universal, then the cluster assignment proportions should be fairly similar between the two. If there are only particular segments of the population that are interested in the company's products, then we should see a mismatch from one to the other. If there is a higher proportion of persons in a cluster for the customer data compared to the general population (e.g. 5% of persons are assigned to a cluster for the general population, but 15% of the customer data is closest to that cluster's centroid) then that suggests the people in that cluster to be a target audience for the company. On the other hand, the proportion of the data in a cluster being larger in the general population than the customer data (e.g. only 2% of customers closest to a population centroid that captures 6% of the data) suggests that group of persons to be outside of the target demographics.
+Take a look at the following points in this step:
+countplot() or barplot() function could be handy..inverse_transform() method of the PCA and StandardScaler objects to transform centroids back to the original data space and interpret the retrieved values directly.# Compare the proportion of data in each cluster for the customer data to the
+# proportion of data in each cluster for the general population.
+# What kinds of people are part of a cluster that is overrepresented in the
+# customer data compared to the general population?
+# What kinds of people are part of a cluster that is underrepresented in the
+# customer data compared to the general population?
+(Double-click this cell and replace this text with your own text, reporting findings and conclusions from the clustering analysis. Can we describe segments of the population that are relatively popular with the mail-order company, or relatively unpopular with the company?)
+ ++ +Congratulations on making it this far in the project! Before you finish, make sure to check through the entire notebook from top to bottom to make sure that your analysis follows a logical flow and all of your findings are documented in Discussion cells. Once you've checked over all of your work, you should export the notebook as an HTML document to submit for evaluation. You can do this from the menu, navigating to File -> Download as -> HTML (.html). You will submit both that document and this notebook for your project submission.
+
+| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "-1 | \n", + "2 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "-1 | \n", + "1 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "-1 | \n", + "3 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "-1 | \n", + "3 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "3 | \n", + "1 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "-1 | \n", + "2 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "-1 | \n", + "1 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "-1 | \n", + "3 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "-1 | \n", + "3 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
10 rows × 85 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 0 | \n", + "AGER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 1 | \n", + "ALTERSKATEGORIE_GROB | \n", + "person | \n", + "ordinal | \n", + "[-1,0,9] | \n", + "
| 2 | \n", + "ANREDE_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 3 | \n", + "CJT_GESAMTTYP | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 4 | \n", + "FINANZ_MINIMALIST | \n", + "person | \n", + "ordinal | \n", + "[-1] | \n", + "
| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "2.0 | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "3.0 | \n", + "1.0 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "NaN | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "NaN | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 10 | \n", + "NaN | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 11 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 12 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 13 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 14 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 15 | \n", + "1.0 | \n", + "4.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 16 | \n", + "NaN | \n", + "1.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 17 | \n", + "NaN | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 18 | \n", + "NaN | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 19 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
20 rows × 85 columns
\n", + "| \n", + " | 0 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "6 | \n", + "7 | \n", + "8 | \n", + "9 | \n", + "... | \n", + "891211 | \n", + "891212 | \n", + "891213 | \n", + "891214 | \n", + "891215 | \n", + "891216 | \n", + "891217 | \n", + "891218 | \n", + "891219 | \n", + "891220 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALTERSKATEGORIE_GROB | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "3 | \n", + "... | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "
| ANREDE_KZ | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "1 | \n", + "1 | \n", + "
2 rows × 891221 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "SEMIO_RAT | \n", + "SEMIO_KRIT | \n", + "SEMIO_DOM | \n", + "SEMIO_KAEM | \n", + "SEMIO_PFLICHT | \n", + "SEMIO_TRADV | \n", + "ZABEOTYP | \n", + "HH_EINKOMMEN_SCORE | \n", + "ANZ_HAUSHALTE_AKTIV | \n", + "ONLINE_AFFINITAET | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 830954 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "
| 829381 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "7 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 841875 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "2.0 | \n", + "NaN | \n", + "3.0 | \n", + "
| 848175 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 818489 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "5.0 | \n", + "
| 215572 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 83951 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "6 | \n", + "NaN | \n", + "NaN | \n", + "5.0 | \n", + "
| 284735 | \n", + "2.0 | \n", + "1 | \n", + "4.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
| 258200 | \n", + "1.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "6 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "6 | \n", + "4 | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "
| 388735 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "
10 rows × 33 columns
\n", + "" + ], + "text/plain": [ + " ALTERSKATEGORIE_GROB ANREDE_KZ CJT_GESAMTTYP FINANZ_MINIMALIST \\\n", + "830954 1.0 2 3.0 1 \n", + "829381 3.0 2 1.0 4 \n", + "841875 1.0 1 4.0 2 \n", + "848175 2.0 1 3.0 4 \n", + "818489 1.0 2 4.0 3 \n", + "215572 1.0 1 4.0 2 \n", + "83951 3.0 1 5.0 5 \n", + "284735 2.0 1 4.0 4 \n", + "258200 1.0 2 6.0 2 \n", + "388735 3.0 1 6.0 5 \n", + "\n", + " FINANZ_SPARER FINANZ_VORSORGER FINANZ_ANLEGER \\\n", + "830954 5 3 5 \n", + "829381 2 4 4 \n", + "841875 5 3 5 \n", + "848175 4 2 4 \n", + "818489 4 2 5 \n", + "215572 5 3 5 \n", + "83951 3 4 3 \n", + "284735 4 2 4 \n", + "258200 5 3 5 \n", + "388735 2 5 2 \n", + "\n", + " FINANZ_UNAUFFAELLIGER FINANZ_HAUSBAUER FINANZTYP ... \\\n", + "830954 5 3 1 ... \n", + "829381 3 1 3 ... \n", + "841875 5 2 1 ... \n", + "848175 5 1 3 ... \n", + "818489 5 2 4 ... \n", + "215572 5 2 1 ... \n", + "83951 3 1 3 ... \n", + "284735 5 1 3 ... \n", + "258200 5 4 1 ... \n", + "388735 3 2 2 ... \n", + "\n", + " SEMIO_RAT SEMIO_KRIT SEMIO_DOM SEMIO_KAEM SEMIO_PFLICHT \\\n", + "830954 6 7 6 6 5 \n", + "829381 4 7 6 7 4 \n", + "841875 4 1 2 4 5 \n", + "848175 5 1 2 2 5 \n", + "818489 6 7 6 6 5 \n", + "215572 5 1 2 4 5 \n", + "83951 5 3 2 3 4 \n", + "284735 4 1 2 2 5 \n", + "258200 6 7 6 6 5 \n", + "388735 5 3 2 3 4 \n", + "\n", + " SEMIO_TRADV ZABEOTYP HH_EINKOMMEN_SCORE ANZ_HAUSHALTE_AKTIV \\\n", + "830954 6 5 NaN NaN \n", + "829381 3 3 NaN NaN \n", + "841875 5 1 2.0 NaN \n", + "848175 5 5 2.0 NaN \n", + "818489 6 5 NaN NaN \n", + "215572 5 5 NaN NaN \n", + "83951 4 6 NaN NaN \n", + "284735 5 5 NaN NaN \n", + "258200 6 4 NaN NaN \n", + "388735 4 3 NaN NaN \n", + "\n", + " ONLINE_AFFINITAET \n", + "830954 3.0 \n", + "829381 4.0 \n", + "841875 3.0 \n", + "848175 2.0 \n", + "818489 5.0 \n", + "215572 4.0 \n", + "83951 5.0 \n", + "284735 4.0 \n", + "258200 3.0 \n", + "388735 4.0 \n", + "\n", + "[10 rows x 33 columns]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Compare the distribution of values for at least five columns where there are\n", + "# no or few missing values, between the two subsets.\n", + "print(f'Number of cols to drop: {len(columnPatternIndexes)}')\n", + "anomaliesL_compare = anomaliesL.drop(anomaliesL.iloc[:,columnPatternIndexes], axis=1)\n", + "print(f'Number of cols kept: {anomaliesL_compare.shape[1]}')\n", + "anomaliesL_compare.head(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "\n", + "def dataComparison(df):\n", + " cols = random.sample(list(df.columns.values), 5)\n", + " f, axes = plt.subplots(1, 5, figsize=(25,4))\n", + " for i in range(0, 5):\n", + " sns.countplot(x=cols[i], data=df.fillna('Missing'), ax=axes[i]) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Answer\n", + "Let's look at the data distribution for the Lower group (those that don't have many zero values across the rows)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "SEMIO_RAT | \n", + "SEMIO_KRIT | \n", + "SEMIO_DOM | \n", + "SEMIO_KAEM | \n", + "SEMIO_PFLICHT | \n", + "SEMIO_TRADV | \n", + "ZABEOTYP | \n", + "HH_EINKOMMEN_SCORE | \n", + "ANZ_HAUSHALTE_AKTIV | \n", + "ONLINE_AFFINITAET | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 643174 | \n", + "3.0 | \n", + "1 | \n", + "NaN | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 732775 | \n", + "3.0 | \n", + "2 | \n", + "NaN | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 472919 | \n", + "1.0 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "6 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 183108 | \n", + "1.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 139316 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691141 | \n", + "1.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691142 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691171 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 691183 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
| 139332 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "4 | \n", + "7 | \n", + "6 | \n", + "6 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2.0 | \n", + "NaN | \n", + "2.0 | \n", + "
10 rows × 33 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 0 | \n", + "AGER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 2 | \n", + "ANREDE_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 3 | \n", + "CJT_GESAMTTYP | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 10 | \n", + "FINANZTYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 12 | \n", + "GFK_URLAUBERTYP | \n", + "person | \n", + "categorical | \n", + "[] | \n", + "
| 13 | \n", + "GREEN_AVANTGARDE | \n", + "person | \n", + "categorical | \n", + "[] | \n", + "
| 17 | \n", + "LP_FAMILIE_FEIN | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 18 | \n", + "LP_FAMILIE_GROB | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 19 | \n", + "LP_STATUS_FEIN | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 20 | \n", + "LP_STATUS_GROB | \n", + "person | \n", + "categorical | \n", + "[0] | \n", + "
| 21 | \n", + "NATIONALITAET_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 38 | \n", + "SHOPPER_TYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 39 | \n", + "SOHO_KZ | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 40 | \n", + "TITEL_KZ | \n", + "person | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 41 | \n", + "VERS_TYP | \n", + "person | \n", + "categorical | \n", + "[-1] | \n", + "
| 42 | \n", + "ZABEOTYP | \n", + "person | \n", + "categorical | \n", + "[-1,9] | \n", + "
| 47 | \n", + "KK_KUNDENTYP | \n", + "household | \n", + "categorical | \n", + "[-1] | \n", + "
| 52 | \n", + "GEBAEUDETYP | \n", + "building | \n", + "categorical | \n", + "[-1,0] | \n", + "
| 55 | \n", + "OST_WEST_KZ | \n", + "building | \n", + "categorical | \n", + "[-1] | \n", + "
| 57 | \n", + "CAMEO_DEUG_2015 | \n", + "microcell_rr4 | \n", + "categorical | \n", + "[-1,X] | \n", + "
| 58 | \n", + "CAMEO_DEU_2015 | \n", + "microcell_rr4 | \n", + "categorical | \n", + "[XX] | \n", + "
| \n", + " | CJT_GESAMTTYP | \n", + "FINANZTYP | \n", + "GFK_URLAUBERTYP | \n", + "LP_FAMILIE_FEIN | \n", + "LP_FAMILIE_GROB | \n", + "LP_STATUS_FEIN | \n", + "LP_STATUS_GROB | \n", + "NATIONALITAET_KZ | \n", + "SHOPPER_TYP | \n", + "SOHO_KZ | \n", + "VERS_TYP | \n", + "ZABEOTYP | \n", + "GEBAEUDETYP | \n", + "OST_WEST_KZ | \n", + "CAMEO_DEUG_2015 | \n", + "CAMEO_DEU_2015 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "4 | \n", + "10.0 | \n", + "2.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "5.0 | \n", + "1 | \n", + "10.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5 | \n", + "8.0 | \n", + "W | \n", + "8 | \n", + "8A | \n", + "
| 2 | \n", + "3.0 | \n", + "1 | \n", + "10.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5 | \n", + "1.0 | \n", + "W | \n", + "4 | \n", + "4C | \n", + "
| 3 | \n", + "2.0 | \n", + "6 | \n", + "1.0 | \n", + "NaN | \n", + "NaN | \n", + "9.0 | \n", + "4.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "1.0 | \n", + "W | \n", + "2 | \n", + "2A | \n", + "
| 4 | \n", + "5.0 | \n", + "5 | \n", + "5.0 | \n", + "10.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "4 | \n", + "1.0 | \n", + "W | \n", + "6 | \n", + "6B | \n", + "
| \n", + " | CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "FINANZTYP_3 | \n", + "... | \n", + "CAMEO_DEU_2015_8A | \n", + "CAMEO_DEU_2015_8B | \n", + "CAMEO_DEU_2015_8C | \n", + "CAMEO_DEU_2015_8D | \n", + "CAMEO_DEU_2015_9A | \n", + "CAMEO_DEU_2015_9B | \n", + "CAMEO_DEU_2015_9C | \n", + "CAMEO_DEU_2015_9D | \n", + "CAMEO_DEU_2015_9E | \n", + "CAMEO_DEU_2015_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 148 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 15 | \n", + "LP_LEBENSPHASE_FEIN | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 16 | \n", + "LP_LEBENSPHASE_GROB | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 22 | \n", + "PRAEGENDE_JUGENDJAHRE | \n", + "person | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 56 | \n", + "WOHNLAGE | \n", + "building | \n", + "mixed | \n", + "[-1] | \n", + "
| 59 | \n", + "CAMEO_INTL_2015 | \n", + "microcell_rr4 | \n", + "mixed | \n", + "[-1,XX] | \n", + "
| 64 | \n", + "KBA05_BAUMAX | \n", + "microcell_rr3 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 79 | \n", + "PLZ8_BAUMAX | \n", + "macrocell_plz8 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "
|---|---|---|
| 0 | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "90.0 | \n", + "mainstream | \n", + "
| 2 | \n", + "90.0 | \n", + "avantgarde | \n", + "
| 3 | \n", + "70.0 | \n", + "mainstream | \n", + "
| 4 | \n", + "70.0 | \n", + "mainstream | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|
| 0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "mainstream | \n", + "90.0 | \n", + "5 | \n", + "1 | \n", + "
| 2 | \n", + "avantgarde | \n", + "90.0 | \n", + "2 | \n", + "4 | \n", + "
| 3 | \n", + "mainstream | \n", + "70.0 | \n", + "1 | \n", + "2 | \n", + "
| 4 | \n", + "mainstream | \n", + "70.0 | \n", + "4 | \n", + "3 | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement_avantgarde | \n", + "PRAEGENDE_JUGENDJAHRE_movement_mainstream | \n", + "PRAEGENDE_JUGENDJAHRE_movement_nan | \n", + "PRAEGENDE_JUGENDJAHRE_decade_40.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_50.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_60.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_70.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_80.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_90.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_nan | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 22 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "90.0 | \n", + "mainstream | \n", + "5 | \n", + "1 | \n", + "
2 rows × 83 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "FINANZTYP | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 3 | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "2 | \n", + "2.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
| 6 | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 7 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 8 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "3.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 10 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 11 | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 12 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 13 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 14 | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 15 | \n", + "4.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 16 | \n", + "1.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 17 | \n", + "2.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 18 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 19 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "6.0 | \n", + "3.0 | \n", + "
| 20 | \n", + "2.0 | \n", + "2 | \n", + "4.0 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "
| 21 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 22 | \n", + "1.0 | \n", + "1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 23 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "3.0 | \n", + "6.0 | \n", + "2.0 | \n", + "
| 24 | \n", + "3.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 25 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "
| 26 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "
| 27 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 28 | \n", + "3.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "
| 29 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| ... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
| 891191 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 891192 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 891193 | \n", + "4.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "2.0 | \n", + "2.0 | \n", + "4.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
| 891194 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "3 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891195 | \n", + "4.0 | \n", + "2 | \n", + "6.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891196 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "
| 891197 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "3 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891198 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "2 | \n", + "5 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891199 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "3.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891200 | \n", + "1.0 | \n", + "2 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 891201 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891202 | \n", + "2.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "2.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891203 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "4 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "5 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "8.0 | \n", + "5.0 | \n", + "
| 891204 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "4.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891205 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891206 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "4 | \n", + "2 | \n", + "4 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 891207 | \n", + "3.0 | \n", + "2 | \n", + "1.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 891208 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "
| 891209 | \n", + "1.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "3 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "4.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 891210 | \n", + "3.0 | \n", + "1 | \n", + "5.0 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "2 | \n", + "2 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891211 | \n", + "3.0 | \n", + "1 | \n", + "2.0 | \n", + "3 | \n", + "2 | \n", + "4 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "5.0 | \n", + "
| 891212 | \n", + "4.0 | \n", + "1 | \n", + "1.0 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "5 | \n", + "... | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "4.0 | \n", + "1.0 | \n", + "3.0 | \n", + "9.0 | \n", + "5.0 | \n", + "
| 891213 | \n", + "4.0 | \n", + "2 | \n", + "5.0 | \n", + "3 | \n", + "3 | \n", + "3 | \n", + "5 | \n", + "3 | \n", + "2 | \n", + "6 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "4.0 | \n", + "
| 891214 | \n", + "1.0 | \n", + "2 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "3 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "2.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "7.0 | \n", + "3.0 | \n", + "
| 891215 | \n", + "2.0 | \n", + "2 | \n", + "6.0 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "5 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "4.0 | \n", + "4.0 | \n", + "2.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 891216 | \n", + "3.0 | \n", + "2 | \n", + "5.0 | \n", + "1 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 891217 | \n", + "2.0 | \n", + "1 | \n", + "4.0 | \n", + "3 | \n", + "3 | \n", + "3 | \n", + "2 | \n", + "2 | \n", + "3 | \n", + "6 | \n", + "... | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "4.0 | \n", + "5.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 891218 | \n", + "2.0 | \n", + "2 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "4.0 | \n", + "2.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "2.0 | \n", + "2.0 | \n", + "3.0 | \n", + "
| 891219 | \n", + "1.0 | \n", + "1 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "5 | \n", + "1 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "3.0 | \n", + "1.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "4.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 891220 | \n", + "4.0 | \n", + "1 | \n", + "1.0 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "6 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "4.0 | \n", + "5.0 | \n", + "
891221 rows × 79 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "0 | \n", + "NaN | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "963.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
2 rows × 57 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "1 | \n", + "3 | \n", + "4 | \n", + "3 | \n", + "5 | \n", + "5 | \n", + "3 | \n", + "0 | \n", + "NaN | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "1 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "4.0 | \n", + "2 | \n", + "4 | \n", + "2 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "2.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 227 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "HEALTH_TYP | \n", + "RETOURTYP_BK_S | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | \n", + "1.0 | \n", + "2 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "5 | \n", + "4 | \n", + "5 | \n", + "3.0 | \n", + "1.0 | \n", + "... | \n", + "963.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "4.0 | \n", + "
| 2 | \n", + "3.0 | \n", + "2 | \n", + "1 | \n", + "4 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "5 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "712.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "4.0 | \n", + "4.0 | \n", + "3.0 | \n", + "5.0 | \n", + "2.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "4 | \n", + "3 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "3.0 | \n", + "5.0 | \n", + "... | \n", + "435.0 | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "6.0 | \n", + "5.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "2 | \n", + "3 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "1300.0 | \n", + "2.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "
4 rows × 56 columns
\n", + "| \n", + " | GREEN_AVANTGARDE | \n", + "CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "1.057812 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "0.586011 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "0.655880 | \n", + "
| 1 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0.302898 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "0.586011 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-0.824992 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.530214 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "0.807528 | \n", + "0.263572 | \n", + "1.396317 | \n", + "
| 3 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "2.071381 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "0.381459 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-0.084556 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.769080 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "0.807528 | \n", + "0.263572 | \n", + "-0.084556 | \n", + "
| 5 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.441249 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "0.586011 | \n", + "-1.215167 | \n", + "-0.171975 | \n", + "-0.824992 | \n", + "
| 6 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.301635 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-0.607522 | \n", + "-0.084556 | \n", + "
| 7 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "-0.244490 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-1.565428 | \n", + "
| 8 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.563298 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "-0.984345 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "0.807528 | \n", + "0.263572 | \n", + "1.396317 | \n", + "
| 9 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0.029204 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "0.586011 | \n", + "0.807528 | \n", + "0.263572 | \n", + "-0.084556 | \n", + "
10 rows × 227 columns
\n", + "| \n", + " | 0 | \n", + "
|---|---|
| PLZ8_ANTG3 | \n", + "0.222606 | \n", + "
| PLZ8_ANTG4 | \n", + "0.215934 | \n", + "
| ORTSGR_KLS9 | \n", + "0.198526 | \n", + "
| EWDICHTE | \n", + "0.195974 | \n", + "
| HH_EINKOMMEN_SCORE | \n", + "0.190977 | \n", + "
| FINANZ_SPARER | \n", + "0.155443 | \n", + "
| FINANZ_HAUSBAUER | \n", + "0.152013 | \n", + "
| KBA05_ANTG4 | \n", + "0.151090 | \n", + "
| PLZ8_ANTG2 | \n", + "0.148548 | \n", + "
| ARBEIT | \n", + "0.141607 | \n", + "
| \n", + " | 0 | \n", + "
|---|---|
| MOBI_REGIO | \n", + "-0.239428 | \n", + "
| KBA05_ANTG1 | \n", + "-0.222922 | \n", + "
| FINANZ_MINIMALIST | \n", + "-0.222529 | \n", + "
| PLZ8_ANTG1 | \n", + "-0.221995 | \n", + "
| KBA05_GBZ | \n", + "-0.214801 | \n", + "
| PLZ8_GBZ | \n", + "-0.166337 | \n", + "
| INNENSTADT | \n", + "-0.165851 | \n", + "
| KONSUMNAEHE | \n", + "-0.165035 | \n", + "
| ALTERSKATEGORIE_GROB | \n", + "-0.137991 | \n", + "
| BALLRAUM | \n", + "-0.128487 | \n", + "
| \n", + " | 1 | \n", + "
|---|---|
| ALTERSKATEGORIE_GROB | \n", + "0.252765 | \n", + "
| SEMIO_ERL | \n", + "0.235743 | \n", + "
| FINANZ_VORSORGER | \n", + "0.217776 | \n", + "
| SEMIO_LUST | \n", + "0.175344 | \n", + "
| RETOURTYP_BK_S | \n", + "0.161684 | \n", + "
| SEMIO_KRIT | \n", + "0.130653 | \n", + "
| SEMIO_KAEM | \n", + "0.122912 | \n", + "
| FINANZ_HAUSBAUER | \n", + "0.122652 | \n", + "
| W_KEIT_KIND_HH | \n", + "0.118632 | \n", + "
| PLZ8_ANTG3 | \n", + "0.104754 | \n", + "
| \n", + " | 1 | \n", + "
|---|---|
| SEMIO_REL | \n", + "-0.262923 | \n", + "
| SEMIO_PFLICHT | \n", + "-0.231305 | \n", + "
| SEMIO_KULT | \n", + "-0.225357 | \n", + "
| SEMIO_TRADV | \n", + "-0.225101 | \n", + "
| FINANZ_SPARER | \n", + "-0.223603 | \n", + "
| FINANZ_UNAUFFAELLIGER | \n", + "-0.217697 | \n", + "
| FINANZ_ANLEGER | \n", + "-0.195253 | \n", + "
| SEMIO_FAM | \n", + "-0.184628 | \n", + "
| ONLINE_AFFINITAET | \n", + "-0.164147 | \n", + "
| SEMIO_RAT | \n", + "-0.163079 | \n", + "
| \n", + " | 2 | \n", + "
|---|---|
| SEMIO_VERT | \n", + "0.345306 | \n", + "
| SEMIO_SOZ | \n", + "0.256961 | \n", + "
| SEMIO_FAM | \n", + "0.242939 | \n", + "
| SEMIO_KULT | \n", + "0.220989 | \n", + "
| FINANZ_MINIMALIST | \n", + "0.162318 | \n", + "
| RETOURTYP_BK_S | \n", + "0.123113 | \n", + "
| FINANZ_VORSORGER | \n", + "0.107471 | \n", + "
| W_KEIT_KIND_HH | \n", + "0.099203 | \n", + "
| ALTERSKATEGORIE_GROB | \n", + "0.095271 | \n", + "
| SEMIO_LUST | \n", + "0.081573 | \n", + "
| \n", + " | 2 | \n", + "
|---|---|
| ANREDE_KZ | \n", + "-0.364546 | \n", + "
| SEMIO_KAEM | \n", + "-0.334261 | \n", + "
| SEMIO_DOM | \n", + "-0.311411 | \n", + "
| SEMIO_KRIT | \n", + "-0.264220 | \n", + "
| SEMIO_RAT | \n", + "-0.227216 | \n", + "
| FINANZ_ANLEGER | \n", + "-0.195261 | \n", + "
| SEMIO_ERL | \n", + "-0.158497 | \n", + "
| FINANZ_SPARER | \n", + "-0.111787 | \n", + "
| FINANZ_UNAUFFAELLIGER | \n", + "-0.103077 | \n", + "
| SEMIO_TRADV | \n", + "-0.097060 | \n", + "
| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "-1 | \n", + "4 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "-1 | \n", + "4 | \n", + "2 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
3 rows × 85 columns
\n", + "| \n", + " | AGER_TYP | \n", + "ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "CJT_GESAMTTYP | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "... | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_BAUMAX | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "2.0 | \n", + "4.0 | \n", + "1 | \n", + "5.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "NaN | \n", + "4.0 | \n", + "1 | \n", + "NaN | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "NaN | \n", + "4.0 | \n", + "2 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
| 3 | \n", + "1.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3.0 | \n", + "4.0 | \n", + "1.0 | \n", + "3.0 | \n", + "1.0 | \n", + "
| 4 | \n", + "NaN | \n", + "3.0 | \n", + "1 | \n", + "6.0 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "... | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 5 | \n", + "1.0 | \n", + "3.0 | \n", + "1 | \n", + "4.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "... | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
| 6 | \n", + "2.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "
| 7 | \n", + "1.0 | \n", + "4.0 | \n", + "1 | \n", + "2.0 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "4.0 | \n", + "3.0 | \n", + "
| 8 | \n", + "2.0 | \n", + "4.0 | \n", + "2 | \n", + "1.0 | \n", + "2 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "1 | \n", + "5 | \n", + "... | \n", + "1.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "4.0 | \n", + "3.0 | \n", + "8.0 | \n", + "3.0 | \n", + "
| 9 | \n", + "1.0 | \n", + "3.0 | \n", + "1 | \n", + "3.0 | \n", + "5 | \n", + "2 | \n", + "4 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "... | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "6.0 | \n", + "4.0 | \n", + "
10 rows × 85 columns
\n", + "| \n", + " | CJT_GESAMTTYP | \n", + "FINANZTYP | \n", + "GFK_URLAUBERTYP | \n", + "LP_FAMILIE_FEIN | \n", + "LP_FAMILIE_GROB | \n", + "LP_STATUS_FEIN | \n", + "LP_STATUS_GROB | \n", + "NATIONALITAET_KZ | \n", + "SHOPPER_TYP | \n", + "SOHO_KZ | \n", + "VERS_TYP | \n", + "ZABEOTYP | \n", + "GEBAEUDETYP | \n", + "OST_WEST_KZ | \n", + "CAMEO_DEUG_2015 | \n", + "CAMEO_DEU_2015 | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "5.0 | \n", + "2 | \n", + "4.0 | \n", + "2.0 | \n", + "2.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "3.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "1.0 | \n", + "W | \n", + "1 | \n", + "1A | \n", + "
| 1 | \n", + "NaN | \n", + "2 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "1.0 | \n", + "3.0 | \n", + "0.0 | \n", + "1.0 | \n", + "3 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "2.0 | \n", + "2 | \n", + "3.0 | \n", + "1.0 | \n", + "1.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "3 | \n", + "8.0 | \n", + "W | \n", + "5 | \n", + "5D | \n", + "
| 3 | \n", + "2.0 | \n", + "6 | \n", + "10.0 | \n", + "NaN | \n", + "NaN | \n", + "9.0 | \n", + "4.0 | \n", + "1.0 | \n", + "0.0 | \n", + "0.0 | \n", + "1.0 | \n", + "1 | \n", + "2.0 | \n", + "W | \n", + "4 | \n", + "4C | \n", + "
| 4 | \n", + "6.0 | \n", + "2 | \n", + "2.0 | \n", + "10.0 | \n", + "5.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "1.0 | \n", + "0.0 | \n", + "2.0 | \n", + "1 | \n", + "3.0 | \n", + "W | \n", + "7 | \n", + "7B | \n", + "
| \n", + " | CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "FINANZTYP_3 | \n", + "... | \n", + "CAMEO_DEU_2015_8A | \n", + "CAMEO_DEU_2015_8B | \n", + "CAMEO_DEU_2015_8C | \n", + "CAMEO_DEU_2015_8D | \n", + "CAMEO_DEU_2015_9A | \n", + "CAMEO_DEU_2015_9B | \n", + "CAMEO_DEU_2015_9C | \n", + "CAMEO_DEU_2015_9D | \n", + "CAMEO_DEU_2015_9E | \n", + "CAMEO_DEU_2015_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 147 columns
\n", + "| \n", + " | attribute | \n", + "information_level | \n", + "type | \n", + "missing_or_unknown | \n", + "
|---|---|---|---|---|
| 15 | \n", + "LP_LEBENSPHASE_FEIN | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 16 | \n", + "LP_LEBENSPHASE_GROB | \n", + "person | \n", + "mixed | \n", + "[0] | \n", + "
| 22 | \n", + "PRAEGENDE_JUGENDJAHRE | \n", + "person | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 56 | \n", + "WOHNLAGE | \n", + "building | \n", + "mixed | \n", + "[-1] | \n", + "
| 59 | \n", + "CAMEO_INTL_2015 | \n", + "microcell_rr4 | \n", + "mixed | \n", + "[-1,XX] | \n", + "
| 64 | \n", + "KBA05_BAUMAX | \n", + "microcell_rr3 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| 79 | \n", + "PLZ8_BAUMAX | \n", + "macrocell_plz8 | \n", + "mixed | \n", + "[-1,0] | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_decade | \n", + "PRAEGENDE_JUGENDJAHRE_movement | \n", + "
|---|---|---|
| 0 | \n", + "50.0 | \n", + "avantgarde | \n", + "
| 1 | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "50.0 | \n", + "avantgarde | \n", + "
| 3 | \n", + "40.0 | \n", + "mainstream | \n", + "
| 4 | \n", + "70.0 | \n", + "mainstream | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement | \n", + "PRAEGENDE_JUGENDJAHRE_decade | \n", + "CAMEO_INTL_2015_wealth | \n", + "CAMEO_INTL_2015_life | \n", + "
|---|---|---|---|---|
| 0 | \n", + "avantgarde | \n", + "50.0 | \n", + "1 | \n", + "3 | \n", + "
| 1 | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
| 2 | \n", + "avantgarde | \n", + "50.0 | \n", + "3 | \n", + "4 | \n", + "
| 3 | \n", + "mainstream | \n", + "40.0 | \n", + "2 | \n", + "4 | \n", + "
| 4 | \n", + "mainstream | \n", + "70.0 | \n", + "4 | \n", + "1 | \n", + "
| \n", + " | PRAEGENDE_JUGENDJAHRE_movement_avantgarde | \n", + "PRAEGENDE_JUGENDJAHRE_movement_mainstream | \n", + "PRAEGENDE_JUGENDJAHRE_movement_nan | \n", + "PRAEGENDE_JUGENDJAHRE_decade_40.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_50.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_60.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_70.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_80.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_90.0 | \n", + "PRAEGENDE_JUGENDJAHRE_decade_nan | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 22 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1.0 | \n", + "... | \n", + "1201.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "1.0 | \n", + "... | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "NaN | \n", + "
2 rows × 57 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "GREEN_AVANTGARDE | \n", + "HEALTH_TYP | \n", + "... | \n", + "CAMEO_INTL_2015_wealth_3 | \n", + "CAMEO_INTL_2015_wealth_4 | \n", + "CAMEO_INTL_2015_wealth_5 | \n", + "CAMEO_INTL_2015_wealth_nan | \n", + "CAMEO_INTL_2015_life_1 | \n", + "CAMEO_INTL_2015_life_2 | \n", + "CAMEO_INTL_2015_life_3 | \n", + "CAMEO_INTL_2015_life_4 | \n", + "CAMEO_INTL_2015_life_5 | \n", + "CAMEO_INTL_2015_life_nan | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1 | \n", + "1.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
| 1 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "3 | \n", + "2 | \n", + "0 | \n", + "1.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "
| 2 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "1 | \n", + "2.0 | \n", + "... | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 3 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "2 | \n", + "1 | \n", + "2 | \n", + "0 | \n", + "2.0 | \n", + "... | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "0 | \n", + "3.0 | \n", + "... | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "
5 rows × 226 columns
\n", + "| \n", + " | ALTERSKATEGORIE_GROB | \n", + "ANREDE_KZ | \n", + "FINANZ_MINIMALIST | \n", + "FINANZ_SPARER | \n", + "FINANZ_VORSORGER | \n", + "FINANZ_ANLEGER | \n", + "FINANZ_UNAUFFAELLIGER | \n", + "FINANZ_HAUSBAUER | \n", + "HEALTH_TYP | \n", + "RETOURTYP_BK_S | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "4.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "2 | \n", + "1.0 | \n", + "5.0 | \n", + "... | \n", + "1201.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "0.0 | \n", + "5.0 | \n", + "5.0 | \n", + "1.0 | \n", + "2.0 | \n", + "1.0 | \n", + "
| 2 | \n", + "4.0 | \n", + "2 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "2.0 | \n", + "5.0 | \n", + "... | \n", + "433.0 | \n", + "2.0 | \n", + "3.0 | \n", + "3.0 | \n", + "1.0 | \n", + "3.0 | \n", + "2.0 | \n", + "3.0 | \n", + "5.0 | \n", + "3.0 | \n", + "
| 4 | \n", + "3.0 | \n", + "1 | \n", + "3 | \n", + "1 | \n", + "4 | \n", + "4 | \n", + "5 | \n", + "2 | \n", + "3.0 | \n", + "5.0 | \n", + "... | \n", + "513.0 | \n", + "2.0 | \n", + "4.0 | \n", + "2.0 | \n", + "1.0 | \n", + "3.0 | \n", + "3.0 | \n", + "3.0 | \n", + "5.0 | \n", + "1.0 | \n", + "
| 5 | \n", + "3.0 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "5 | \n", + "1 | \n", + "2 | \n", + "3 | \n", + "3.0 | \n", + "3.0 | \n", + "... | \n", + "1167.0 | \n", + "2.0 | \n", + "3.0 | \n", + "2.0 | \n", + "1.0 | \n", + "5.0 | \n", + "5.0 | \n", + "3.0 | \n", + "7.0 | \n", + "5.0 | \n", + "
4 rows × 56 columns
\n", + "| \n", + " | GREEN_AVANTGARDE | \n", + "CJT_GESAMTTYP_1.0 | \n", + "CJT_GESAMTTYP_2.0 | \n", + "CJT_GESAMTTYP_3.0 | \n", + "CJT_GESAMTTYP_4.0 | \n", + "CJT_GESAMTTYP_5.0 | \n", + "CJT_GESAMTTYP_6.0 | \n", + "CJT_GESAMTTYP_nan | \n", + "FINANZTYP_1 | \n", + "FINANZTYP_2 | \n", + "... | \n", + "KBA13_ANZAHL_PKW | \n", + "PLZ8_ANTG1 | \n", + "PLZ8_ANTG2 | \n", + "PLZ8_ANTG3 | \n", + "PLZ8_ANTG4 | \n", + "PLZ8_HHZ | \n", + "PLZ8_GBZ | \n", + "ARBEIT | \n", + "ORTSGR_KLS9 | \n", + "RELAT_AB | \n", + "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "1.773626 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-2.226515 | \n", + "-1.478616 | \n", + "-1.565428 | \n", + "
| 1 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "-0.536230 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "1.38779 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-1.209678 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-0.084556 | \n", + "
| 2 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "-0.295620 | \n", + "-0.231061 | \n", + "1.270764 | \n", + "0.37203 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "-0.171975 | \n", + "-1.565428 | \n", + "
| 3 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1.671367 | \n", + "-0.231061 | \n", + "0.181378 | \n", + "0.37203 | \n", + "0.381459 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-0.203820 | \n", + "0.699119 | \n", + "1.396317 | \n", + "
| 4 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "2.071381 | \n", + "0.791700 | \n", + "-0.908009 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-1.215167 | \n", + "-1.043069 | \n", + "-0.824992 | \n", + "
| 5 | \n", + "1 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.391864 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "0.381459 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "-0.607522 | \n", + "-0.084556 | \n", + "
| 6 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "1.487902 | \n", + "0.791700 | \n", + "0.181378 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "1.440275 | \n", + "1.483855 | \n", + "-0.203820 | \n", + "0.263572 | \n", + "0.655880 | \n", + "
| 7 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "... | \n", + "0.035219 | \n", + "1.814461 | \n", + "-0.908009 | \n", + "-0.64373 | \n", + "-0.984345 | \n", + "-0.638548 | \n", + "-0.311834 | \n", + "-1.215167 | \n", + "-0.171975 | \n", + "-1.565428 | \n", + "
| 8 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "1.782649 | \n", + "0.791700 | \n", + "-1.997396 | \n", + "-1.65949 | \n", + "-0.984345 | \n", + "0.400863 | \n", + "1.483855 | \n", + "-2.226515 | \n", + "-1.914163 | \n", + "-1.565428 | \n", + "
| 9 | \n", + "0 | \n", + "0 | \n", + "1 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "0 | \n", + "... | \n", + "-0.091101 | \n", + "-1.253822 | \n", + "1.270764 | \n", + "1.38779 | \n", + "0.381459 | \n", + "1.440275 | \n", + "-0.311834 | \n", + "-0.203820 | \n", + "1.134666 | \n", + "1.396317 | \n", + "
10 rows × 226 columns
\n", + "| \n", + " | Cluster | \n", + "
|---|---|
| 0 | \n", + "0.150381 | \n", + "
| 1 | \n", + "0.116970 | \n", + "
| 2 | \n", + "0.109083 | \n", + "
| 3 | \n", + "0.085024 | \n", + "
| 4 | \n", + "0.083069 | \n", + "
| 5 | \n", + "0.076155 | \n", + "
| 6 | \n", + "0.074252 | \n", + "
| 7 | \n", + "0.072013 | \n", + "
| 8 | \n", + "0.069232 | \n", + "
| 9 | \n", + "0.052604 | \n", + "
| 10 | \n", + "0.045414 | \n", + "
| 11 | \n", + "0.025454 | \n", + "
| 13 | \n", + "0.013002 | \n", + "
| 14 | \n", + "0.010118 | \n", + "
| 15 | \n", + "0.007621 | \n", + "
| 16 | \n", + "0.006639 | \n", + "
| 17 | \n", + "0.002755 | \n", + "
| 18 | \n", + "0.000215 | \n", + "