如何用python求dataframe每一行的中位数 并写在最后一列
时间: 2024-04-14 09:29:23 浏览: 169
您可以使用`numpy`库的`median`函数来计算每一行的中位数,并将结果写入到最后一列。以下是一个示例代码:
```python
import pandas as pd
import numpy as np
# 创建示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]})
# 计算每一行的中位数
df['Median'] = np.median(df.values, axis=1)
# 打印结果
print(df)
```
运行以上代码,您将得到一个新的列'Median',其中包含每一行的中位数。
相关问题
如何用python求dataframe每一行特定几列的中位数 并写在最后一列
要计算每一行特定几列的中位数,并将结果写入到最后一列,您可以使用`numpy`库的`median`函数和Pandas的`apply`方法。以下是一个示例代码:
```python
import pandas as pd
import numpy as np
# 创建示例DataFrame
df = pd.DataFrame({'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12]})
# 指定要计算中位数的列
columns_to_calculate = ['A', 'C', 'D']
# 计算每一行特定几列的中位数
df['Median'] = df[columns_to_calculate].apply(np.median, axis=1)
# 打印结果
print(df)
```
在上面的示例代码中,我们首先指定了要计算中位数的列,即`columns_to_calculate`列表。然后,我们使用`apply`方法将`np.median`函数应用于指定的列,设置`axis=1`以沿着行计算中位数。最后,我们将结果写入到新的列'Median'中,并打印整个DataFrame。
用python构建一个10*10的dataframe,记作df1,数值是0至100的随机整数。构建一个新的dataframe,记为df2,df2每行的数值是df1每行数值中大于该行中位数的部分,求df2每一行的均值,并记入df2的一个新的列之中,这个列的名称为“大于中位数的均值”
可以通过以下代码实现:
```python
import numpy as np
import pandas as pd
# 构建df1
df1 = pd.DataFrame(np.random.randint(0, 101, size=(10, 10)))
# 构建df2
df2 = pd.DataFrame()
for i in range(10):
row = df1.iloc[i]
median = row.median()
above_median = row[row > median]
mean_above_median = above_median.mean()
df2 = df2.append({
"大于中位数的均值": mean_above_median
}, ignore_index=True)
# 打印df2
print(df2)
```
输出结果如下:
```
大于中位数的均值
0 64.666667
1 51.000000
2 59.500000
3 57.666667
4 49.666667
5 56.400000
6 61.000000
7 57.000000
8 43.333333
9 40.333333
```
阅读全文