Dataframe 如何根据数据框中的值选择行索引和变量名?

Dataframe 如何根据数据框中的值选择行索引和变量名?,dataframe,select,conditional-statements,row,key-value,Dataframe,Select,Conditional Statements,Row,Key Value,我有一个由-1.0和1.0之间的浮点数组成的大数据框。我想创建一个新列表,其中包含索引行、变量名和所有数值大于0.59的单元格的值 以下是一个例子: A B C D ... FD 0 0.34 -0.23 0.6 0.7 ... 0.3 1 -0.5 0.99 0.8 0.2 ... 0.8 ... 45 0.8 0.13 0.34 0.4 ... -0.9 output: 0

我有一个由-1.0和1.0之间的浮点数组成的大数据框。我想创建一个新列表,其中包含索引行、变量名和所有数值大于0.59的单元格的值

以下是一个例子:

      A      B      C    D  ...    FD
0   0.34   -0.23   0.6  0.7 ...   0.3
1   -0.5    0.99   0.8  0.2 ...   0.8
...
45  0.8   0.13    0.34  0.4 ...  -0.9

    output:
    0  C  0.6
    0  D  0.7
    1  B  0.99
    1  C  0.8
...
    1 FD  0.8
    etc..

谢谢

我确信一定有比我更好的解决方案,因为我的解决方案性能很差(逐单元迭代)。但我的尝试是:

# creating a sample df
df = pd.DataFrame(np.random.uniform(-1, 1, size=(10, 4)), columns=list('abcd'))

new_list = []

for tup in df.itertuples():
    for i in range(1, len(tup)):
        if tup[i] > 0.59:
            new_list.append([tup.Index, df.columns[i-1], tup[i]])             

new_df = pd.DataFrame(new_list, columns=['index', 'column', 'value'])
new_df = new_df.set_index('index')

我确信一定有比我更好的解决方案,因为我的解决方案性能很差(逐单元迭代)。但我的尝试是:

# creating a sample df
df = pd.DataFrame(np.random.uniform(-1, 1, size=(10, 4)), columns=list('abcd'))

new_list = []

for tup in df.itertuples():
    for i in range(1, len(tup)):
        if tup[i] > 0.59:
            new_list.append([tup.Index, df.columns[i-1], tup[i]])             

new_df = pd.DataFrame(new_list, columns=['index', 'column', 'value'])
new_df = new_df.set_index('index')