解释每一行df.info() total_survived_sum = df['Survived'].sum() total_nosurvived_sum =891 - df['Survived'].sum() print("幸存者为%d,遇难者为%d"%(total_survived_sum,total_nosurvived_sum))
时间: 2024-04-21 08:27:16 浏览: 16
当你调用 `df.info()` 时,它会显示Pandas DataFrame的基本信息,如列数、列名称、每个列中非空数据的数量、数据类型等等。
`total_survived_sum = df['Survived'].sum()` 这行代码将幸存者的总数计算为数据框df中'Survived'列中所有值为1的行的数量之和。
`total_nosurvived_sum =891 - df['Survived'].sum()` 这行代码将遇难者的总数计算为数据框df中'Survived'列中所有值为0的行的数量之和。由于总人数是固定的891,因此我们可以通过891减去幸存者的总数得到遇难者的总数。
最后,`print("幸存者为%d,遇难者为%d"%(total_survived_sum,total_nosurvived_sum))` 这行代码将幸存者和遇难者的总数打印出来。`%d` 是一个占位符,代表整数类型的数据,后面的 `(total_survived_sum,total_nosurvived_sum)` 则是用于填充这些占位符的数据。
相关问题
y = df.loc['Survived']
这是一个pandas库的DataFrame对象中使用的.loc属性,表示通过标签索引选取数据。这个代码表示选取数据框df中索引标签为'Survived'的那一行,并将其赋值给变量y。注意,这样选取的结果是包含标签为'Survived'的那一行所有列的数据。如果只想要选取某一列,可以使用df.loc[:, 'Survived']这样的语法。
val survived_df = df2.filter(col("Survived") === 1) val pclass_survived_count = survived_df.groupBy("Pclass").count() val pclass_survived_percent = pclass_survived_count.withColumn("percent", format_number(col("count") .divide(sum("count").over()) .multiply(100), 5)); pclass_survived_percent.show() 中sum("count").over()用其他方式替换
如果您想使用其他方式替换 `sum("count").over()`,可以考虑使用 `groupBy` 和 `join` 操作将每个组的 count 数量总和计算出来。具体做法如下:
```
import org.apache.spark.sql.functions.{sum, col}
val total_count = survived_df.select(sum(col("count")).as("total_count")).collect()(0)(0).asInstanceOf[Long]
val pclass_survived_percent = pclass_survived_count.join(broadcast(lit(total_count)).as("total_count")).withColumn("percent", format_number(col("count") / col("total_count") * 100, 5))
```
这里,我们首先使用 `select` 和 `collect` 操作计算出 survived_df 中所有行的 count 数量总和。然后,使用 `join` 操作将每个组的 count 数量总和与 `pclass_survived_count` DataFrame 进行连接,并将连接结果存储在 `pclass_survived_percent` DataFrame 中。最后,使用 `format_number` 函数将每个组的百分比保留小数点后 5 位,并存储在新的列 "percent" 中。
需要注意的是,这种做法的优点是不需要使用窗口函数,因此性能可能会更好。但是缺点是需要进行额外的 `groupBy` 和 `join` 操作,可能会导致代码复杂度和维护成本的增加。因此,在实际应用中,需要根据具体情况进行选择。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)