创建for循环以将唯一值分成两个列表

时间:2017-02-06 19:12:20

标签: python pandas for-loop unique

您好我正在创建一个for循环,将唯一值分成两个列表。

描述列:

print(flight_data_finalcopy['UniqueCarrier'].describe())
print(flight_data_finalcopy['Origin'].describe())
print(flight_data_finalcopy['OriginCityName'].describe())
print(flight_data_finalcopy['OriginStateName'].describe())

哪个输出:

Output:

       `count     433298
        unique        12
        top           WN
        freq      101335
        Name: UniqueCarrier, dtype: object
        count     433298
        unique       294
        top          ATL
        freq       29413
        Name: Origin, dtype: object
        count          433298
        unique            290
        top       Atlanta, GA
        freq            29413
        Name: OriginCityName, dtype: object
        count         433298
        unique            52
        top       California
        freq           54922
        Name: OriginStateName, dtype: object

我的目标是将两个独特描述的值分成两个不同的列表。一个列表应具有唯一值< 55,其余的应该到第二个清单。它的工作原理但问题是所有内容都会附加到一个列表中。是否有我遗漏的东西?非常感谢,谢谢。这是我的代码:

dummies_columns = []
frequency_distribution_columns = []
for column in categorical_columns:
    if (flight_data[column].unique) <= 55:
        dummies_columns.append(column)
    else:
        frequency_distribution_columns.append(column)

1 个答案:

答案 0 :(得分:0)

行。我解决了这个问题。因为我有兴趣在列中找到唯一值的总量,所以我必须调用len()。例如,我找到了一列的数字总和:

len(flight_data_finalcopy['Origin'].unique())

输出该列的唯一值总量。所以上面的行将输出:

Output: 294 

如果没有调用len()以前只给了我显示各个唯一值而不是数字数字的数组。

我必须将dame概念应用于for循环中的if语句。 我在这里做了改动:

dummies_columns = []
requency_distribution_columns = []


    for column in categorical_columns:
        if len(flight_data_finalcopy[column].unique()) <= 55:
            dummies_columns.append(column)
        else:
            frequency_distribution_columns.append(column)

这成功循环并将列分配到正确的列表

Output: print(dummies_columns)
            ['UniqueCarrier', 'OriginStateName', 'DestStateName']

Output: print(frequency_distribution_columns)
['Origin', 'OriginCityName', 'Dest', 'DestCityName']

希望这有助于未来的Stackers!