Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于列数据生成列描述的优雅方法_Python_List_Pandas_Dataframe - Fatal编程技术网

Python 基于列数据生成列描述的优雅方法

Python 基于列数据生成列描述的优雅方法,python,list,pandas,dataframe,Python,List,Pandas,Dataframe,我有一个数据框: index data1 data2 1 30 20 2 20 10 3 40 90 我想生成一个描述数组,每行一个,指示数据块是否重要 我将“重要”定义为值大于25,因此需要以下数组: ['data1 was significant', '', 'data1 was significant\ndata2was significant'] 我知道我可以遍历每一行、检查每一列并构建一

我有一个数据框:

index    data1    data2
1        30       20
2        20       10  
3        40       90
我想生成一个描述数组,每行一个,指示数据块是否重要

我将“重要”定义为值大于25,因此需要以下数组:

['data1 was significant', '',  'data1 was significant\ndata2was significant']
我知道我可以遍历每一行、检查每一列并构建一个数组,但我想知道是否有一种优雅的方法可以使用pandas来实现这一点

使用:


或者,使用
np.where

[''.join(x) for x in np.where(df > 25, df.columns + ' was significant\n', '')] 
['data1 was significant\n',
 '',
 'data1 was significant\ndata2 was significant\n']

或者,使用
apply

In [323]: (df.gt(25).apply(lambda x: '\n'.join(
                       ['%s was significant' % c for c, v in x.iteritems() if v]), axis=1)
             .tolist())
Out[323]: ['data1 was significant', '', 'data1 was significant\ndata2 was significant']

@我通常很节俭。。。今天他们已经走了,还有9个小时,我整晚都没睡。而且。。。你知道/耸耸肩
In [323]: (df.gt(25).apply(lambda x: '\n'.join(
                       ['%s was significant' % c for c, v in x.iteritems() if v]), axis=1)
             .tolist())
Out[323]: ['data1 was significant', '', 'data1 was significant\ndata2 was significant']