对于想了解PythonPandas为所选列的行最大值添加列的读者,本文将是一篇不可错过的文章,我们将详细介绍pandas某列最大值,并且为您提供关于Pandas将列最大值添加到原始数据帧、PANDAS
对于想了解Python Pandas为所选列的行最大值添加列的读者,本文将是一篇不可错过的文章,我们将详细介绍pandas 某列最大值,并且为您提供关于Pandas 将列最大值添加到原始数据帧、PANDAS中类似SQL的窗口函数:Python Pandas Dataframe中的行编号、Pandas将具有多个值的行数据合并到列的Python列表中、pandas获得两列或更多列的行最小值的有价值信息。
本文目录一览:- Python Pandas为所选列的行最大值添加列(pandas 某列最大值)
- Pandas 将列最大值添加到原始数据帧
- PANDAS中类似SQL的窗口函数:Python Pandas Dataframe中的行编号
- Pandas将具有多个值的行数据合并到列的Python列表中
- pandas获得两列或更多列的行最小值
Python Pandas为所选列的行最大值添加列(pandas 某列最大值)
data = {‘name’ : [‘bill’, ‘joe’, ‘steve’],
‘test1’ : [85, 75, 85],
‘test2’ : [35, 45, 83],
‘test3’ : [51, 61, 45]}
frame = pd.DataFrame(data)
我想添加一个新列,以显示每一行的最大值。
所需的输出:
name test1 test2 test3 HighScore bill 75 75 85 85 joe 35 45 83 83 steve 51 61 45 61
有时
frame[''HighScore''] = max(data[''test1''], data[''test2''], data[''test3''])
可行,但大多数时候会出现此错误:
ValueError:具有多个元素的数组的真值不明确。 使用a.any()或a.all()
为什么有时只能工作?还有另一种方法吗?
答案1
小编典典frame[‘HighScore’] = frame[[‘test1’,’test2’,’test3’]].max(axis=1)
>>> frame
name test1 test2 test3 HighScore
0 bill 85 35 51 85
1 joe 75 45 61 75
2 steve 85 83 45 85
Pandas 将列最大值添加到原始数据帧
如何解决Pandas 将列最大值添加到原始数据帧?
我在下面有一个 Pandas 数据框,我想在其中获得最大的单个列:
A B C D
0 0.191 -0.191 0.227 -0.607
1 -0.227 -0.418 0.418 -0.416
2 0.607 0.416 0.835 -0.835
我想我可以遍历所有列并将最大值存储在其他位置。只是想知道这是否可以通过 pandas/numpy 操作来处理
感谢任何帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
PANDAS中类似SQL的窗口函数:Python Pandas Dataframe中的行编号
我来自sql背景,并且经常使用以下数据处理步骤:
- 按一个或多个字段对数据表进行分区
- 对于每个分区,在其每一行中添加一个行号,以行的一个或多个其他字段对行进行排名,分析人员在其中指定升序或降序
例如:
df = pd.DataFrame({'key1' : ['a','a','b','a'],'data1' : [1,2,3,3],'data2' : [1,10,30]})
df
data1 data2 key1
0 1 1 a
1 2 10 a
2 2 2 a
3 3 3 b
4 3 30 a
我正在寻找如何执行相当于此sql窗口函数的PANDAS:
RN = ROW_NUMBER() OVER (PARTITION BY Key1 ORDER BY Data1 ASC,Data2 DESC)
data1 data2 key1 RN
0 1 1 a 1
1 2 10 a 2
2 2 2 a 3
3 3 3 b 1
4 3 30 a 4
我尝试了以下在没有“分区”的情况下必须工作的方法:
def row_number(frame,orderby_columns,orderby_direction,name):
frame.sort_index(by = orderby_columns,ascending = orderby_direction,inplace = True)
frame[name] = list(xrange(len(frame.index)))
我试图将这个想法扩展到可以使用分区(熊猫中的组),但是以下操作不起作用:
df1 = df.groupby('key1').apply(lambda t: t.sort_index(by=['data1','data2'],ascending=[True,False],inplace = True)).reset_index()
def nf(x):
x['rn'] = list(xrange(len(x.index)))
df1['rn1'] = df1.groupby('key1').apply(nf)
但是当我这样做时,我得到了很多NaN。
理想情况下,有一种简洁的方法可以复制sql的窗口函数功能(我已经弄清楚了基于窗口的聚合……这是熊猫的一个内衬)……有人可以和我分享最惯用的方法吗?在PANDAS中编号这样的行?
Pandas将具有多个值的行数据合并到列的Python列表中
我有一个看起来像的数据框
数据
*id*,*name*,*URL*,*Type*
2,birth_france_by_region,http://abc. com,T1
2,http://pt. python,T2
3,long_lat,T3
3,http://pqur. com,T1
4,random_time_series,http://sadsdc. com,T2
4,http://sadcadf. com,T3
5,birth_names,http://google. com,T1
5,http://helloworld. com,T2
5,http://hu. com,T3
我想要一个此数据帧合并id相等的行,并有一个 Type 列表对应于 URL 列表, 所以最终输出应类似于
*id*,*Type*
2,[http://abc .com,http://pt.python],[T1,T2]
3,http://pqur. com],[T3,T1]
4,[http://sadsdc. com,http://sadcadf .com,],[T2,T3]
5,[http://google .com,http://hu. com],T2,T3]
pandas获得两列或更多列的行最小值
如何作为熊猫数据框方程的一部分引用两个数据框的最小值?我尝试使用min()
无法正常工作的python函数。很抱歉,如果在某处有充分的文档证明,但无法找到有效的解决方案来解决此问题。我正在寻找与此类似的东西:
data[''eff''] = pd.DataFrame([data[''flow_h''], data[''flow_c'']]).min() *Cp* (data['' Thi''] - data['' Tci''])
我也尝试使用pandasmin()
函数,该函数也不起作用。
min_flow = pd.DataFrame([data[''flow_h''], data[''flow_c'']]).min()InvalidIndexError: Reindexing only valid with uniquely valued Index objects
这个错误让我感到困惑。数据列只是数字和名称,我不确定索引在哪里起作用。
import pandas as pdimport numpy as npnp.random.seed(365)rows = 10flow = {''flow_c'': [np.random.randint(100) for _ in range(rows)], ''flow_d'': [np.random.randint(100) for _ in range(rows)], ''flow_h'': [np.random.randint(100) for _ in range(rows)]}data = pd.DataFrame(flow)# display(data) flow_c flow_d flow_h0 82 36 431 52 48 122 33 28 773 91 99 114 44 95 275 5 94 646 98 3 887 73 39 928 26 39 629 56 74 50
答案1
小编典典如果要获取mininum
两列或更多列的行,请使用pandas.DataFrame.min
并指定axis=1
。
data[''min_c_h''] = data[[''flow_h'',''flow_c'']].min(axis=1)# display(data) flow_c flow_d flow_h min_c_h0 82 36 43 431 52 48 12 122 33 28 77 333 91 99 11 114 44 95 27 275 5 94 64 56 98 3 88 887 73 39 92 738 26 39 62 269 56 74 50 50
关于Python Pandas为所选列的行最大值添加列和pandas 某列最大值的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于Pandas 将列最大值添加到原始数据帧、PANDAS中类似SQL的窗口函数:Python Pandas Dataframe中的行编号、Pandas将具有多个值的行数据合并到列的Python列表中、pandas获得两列或更多列的行最小值的相关知识,请在本站寻找。
本文标签: