Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x 如何选择多行并根据行名称取平均值_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 如何选择多行并根据行名称取平均值

Python 3.x 如何选择多行并根据行名称取平均值,python-3.x,pandas,Python 3.x,Pandas,从这个数据框中,我喜欢选择具有相同浓度和几乎相同名称的行。例如,前三行具有相同的浓度和名称,但名称Dig_I、Dig_II、Dig_III的末尾除外。这三行具有相同的浓度。我喜欢以某种方式选择这三行,然后取每列的平均值。之后,我想创建一个新的数据帧 以下是整个数据框: import pandas as pd df = pd.read_csv("https://gist.github.com/akash062/75dea3e23a002c98c77a0b7ad3fbd25b.js") 注意:这

从这个数据框中,我喜欢选择具有相同浓度和几乎相同名称的行。例如,前三行具有相同的浓度和名称,但名称Dig_I、Dig_II、Dig_III的末尾除外。这三行具有相同的浓度。我喜欢以某种方式选择这三行,然后取每列的平均值。之后,我想创建一个新的数据帧

以下是整个数据框:

import pandas as pd
df = pd.read_csv("https://gist.github.com/akash062/75dea3e23a002c98c77a0b7ad3fbd25b.js")

注意:这将仅查找具有dtype float或int的列的平均值。。。这将删除img_name列,并将取所有列的平均值。。。 这可能会更快

df = pd.read_csv("https://gist.github.com/akash062/75dea3e23a002c98c77a0b7ad3fbd25b.js").groupby('concentration').mean()
如果您想保留img_名称

df = pd.read_csv("https://gist.github.com/akash062/75dea3e23a002c98c77a0b7ad3fbd25b.js")
new = df.groupby('concentration').mean()
pd.merge(df, new, left_on = 'concentration', right_on = 'concentration', how = 'inner')

这有帮助吗?

df.groupby('concentration')…
?谢谢你的回答。你的回答几乎解决了我的问题。但是有一个问题,如果您使用以下代码:df[df['concentration']==0],您将选择所有浓度为0的行。但我不能把这6行都算在内,总共有6行。我想表示那些几乎同名的行,比如:DS_P_Dig_。基于集中度对它们进行分组后,如何选择具有相同名称的行并取平均值?您是否希望取每个“Dig_1”、“Dig_2”和“Dig_3”的平均值?您的输出将有三行…感谢@Gess123的回答。不是真的。我想取几乎同名的行的平均值。例如:0-I DS_P_Dig_I ROI_1,0-II DS_P_Dig_II ROI_1,0-III DS_P_Dig_III ROI_1,这三个名称几乎相同,这意味着来自此图像的数据相同。所以我想取这三排的平均值。如果您使用这个命令df[df['concentration']==100],您会发现有一些图像名称几乎相同。
df = pd.read_csv("https://gist.github.com/akash062/75dea3e23a002c98c77a0b7ad3fbd25b.js")
new = df.groupby('concentration').mean()
pd.merge(df, new, left_on = 'concentration', right_on = 'concentration', how = 'inner')