蟒蛇。查找数据行的阈值

时间:2018-02-15 09:20:09

标签: python math data-analysis

enter image description here

我是Python的新手,但我必须解决以下任务。请帮帮我。

我有两个非常长的数据列表。对于每个列表,我必须找到一个阈值,该阈值将列表分为值-1(低于阈值)和+1(高于阈值)。我需要划分两行,以便找到两组数据之间的最佳可能相关性。它必须是这样的:

List1 List2     List1 After Threshold applying  List2 After Threshold applying 
-50      -300     -1                             -1
-40      -200     -1                             -1
-30      -100     -1                             -1
-20      0        -1                             -1
-10      100       1                              1
0        200       1                              1
1        300       1                              1
2        400       1                              1

因此,在我的示例中,list1的阈值将为-10(低于它的所有内容等于-1,上面的所有内容都等于1),list2的阈值将为100. / p>

非常感谢!

1 个答案:

答案 0 :(得分:1)

查看python包 var VALID = 't'; 。这是一个教程:https://pandas.pydata.org/pandas-docs/stable/tutorials.html

pandas

import pandas as pd list1 = [-50, -40, -30, -20, -10, 0, 1, 2] list2 = [-300, -200, -100, 0, 100, 200, 300, 400] df = pd.DataFrame({'List 1': list1, 'List 2': list2}) newdf = df.copy() newdf[df > df.median()] = 1 newdf[df < df.median()] = -1 现在包含以下内容:

newdf

如果您同时想要新旧列表,则可以连接数据帧。首先重命名列是个好主意:

   List 1  List 2
0      -1      -1
1      -1      -1
2      -1      -1
3      -1      -1
4       1       1
5       1       1
6       1       1
7       1       1

具有以下结果:

# rename columns:    
newdf = newdf.rename(columns=lambda x: x + ' after threshold')
# concatenate dataframes:
result = pd.concat([df, newdf], axis=1)