Python熊猫遍历特定列

时间:2019-11-18 16:29:40

标签: python pandas iteration

我正在尝试制作数据集某些特定列的条形图:

for kolom_naam in attributen_dataset:
if kolom_naam in categorische_var:
    print(kolom_naam)
    attributen_dataset.kolom_naam.value_counts().plot(kind='bar')

其中attributen_dataset是一个大数据框,而categorische_var是一个包含attributen_dataset中的列名的列表(列表中的名称是字符串)

我不知道使用'kolom_naam'迭代变量选择列的正确语法。 其余的有效,因为print(kolom_naam)完全按照其说的做。

谢谢!!!!!

2 个答案:

答案 0 :(得分:2)

我尝试使用随机值进行完整的模型化。在这里,我使用了categorische_var来过滤列AC

让我知道它是否对您有用:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

y = np.random.rand(10,4)
y[:,0]= np.arange(10)



attributen_dataset = pd.DataFrame(y, columns=["X", "A", "B", "C"])

categorische_var=['A', 'C']


for kolom_naam in attributen_dataset:
    if kolom_naam in categorische_var:
        print(kolom_naam)
        #attributen_dataset.kolom_naam.value_counts().plot(kind='bar')

df_new = attributen_dataset[categorische_var]        
df_new.plot(kind="bar") 

答案 1 :(得分:0)

根据您在旧答案中的评论,我制作了另一个版本。在此版本中,基于categorische_var中的列循环创建条形图:这是原始数据帧attributen_dataset的过滤列表。因此,您为所需的每个列创建了单独的条形图。

让我知道它是否有效。

请参见下面的样机:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

y = np.random.rand(10,4)
y[:,0]= np.arange(10)

attributen_dataset = pd.DataFrame(y, columns=["X", "A", "B", "C"])

categorische_var=['A', 'C']
fig, axes = plt.subplots(1,len(categorische_var), figsize=(12,3))
for kolom_naam in attributen_dataset:
    for i, kolom_naam in enumerate(categorische_var):
        attributen_dataset[kolom_naam].plot(ax=axes[i], kind='bar')