Dataframe 如何根据数据框中的值选择行索引和变量名?
我有一个由-1.0和1.0之间的浮点数组成的大数据框。我想创建一个新列表,其中包含索引行、变量名和所有数值大于0.59的单元格的值 以下是一个例子: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
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')