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']