对于Pandas中dataFrame列的等效循环?

时间:2017-09-29 20:28:17

标签: pandas dataframe

我有办法通过For循环迭代每一列吗?

我的数据被加载到dataFrame中,但除了明确命名一对特定列之外,我很难对列进行广义迭代以进行比较。

理想情况下,我可以像这样进行简单的计算(以迭代方式):

for columns in df:
    if(df[column] > df[column+1]):
        return True

我的数据如下:

S1 S2 S3 C1  C2  C3  conclusion
1  10 23 200 180 125 "black"
6  18 34 200 221 230 "red"
4  21 32 200 150 250 "orange"

2 个答案:

答案 0 :(得分:0)

您想迭代数据框中的所有列吗? df.columns将为您提供数据框中的列数组 使用

for column in df.columns:
    print(df[column])

如果要将一列与下一列进行比较,请使用

column_array=df.columns.tolist()
for column,next_column in zip(df.columns,column_array[1:]):
    if (df[column] > df[next_column]):
        return true

答案 1 :(得分:0)

有几种方法可以遍历列,具体取决于您想要做什么

使用列标签:

for column in df.columns:
    df[column]

使用数字索引:

for i in range(len(df.columns)):
    df.iloc[:, i]

使用iteritems

for name, column in df.iteritems():
    column

我不确定if(df[column] > df[column+1]):的输出应该是什么,因为您的数据框中有字符串和整数,但上述方法之一应该能够根据您的需要进行调整