鱼C论坛

 找回密码
 立即注册
查看: 2033|回复: 7

[已解决]Python作业求助

[复制链接]
发表于 2023-4-22 11:22:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助解答555,新手小白第一次碰到,想请教一下应该怎么填写:

题目1和2:

1.创建一个名为nd_degrees的新DataFrame,通过导入位于https://coding-fundamentals.s3.a ... siness_Degrees.xlsx的Excel文件中的“Notre Dame”表格来完成。将ID列设置为索引标签。

从nd_degrees开始,创建两个新的DataFrame。nd_ug_degrees应仅包括bachelor的行,nd_gr_degrees应仅包括master学位的行。

显示nd_ug_degrees和nd_gr_degrees DataFrame的前5行。

2. 我们希望将nd_ug_degrees DataFrame和nd_gr_degrees DataFrame在垂直方向上重新组合,并为每一行设置唯一的索引。
如果这些数据框具有重复的索引值,我们希望检测到这种情况并将索引值重置为连续的数字(0、1、2……)。如果这些数据框没有重复的索引值,则它们可以保留其现有的索引值。
无论哪种情况,我们应该在最后显示重新组合后的nd_stacked DataFrame。

请按照如下格式进行代码填空以完成指令要求:

______:
    nd_stacked = pd.concat(_______________________ , ___________ = True)
except:
    nd_stacked = pd.concat(________________________).______________(drop = True)
_______:
    display(nd_stacked)
最佳答案
2023-4-22 11:24:29
本帖最后由 isdkz 于 2023-4-22 11:28 编辑

根据题目要求,以下是填写完整的代码:
import pandas as pd

# 问题1
# 从远程加载数据
url = "https://coding-fundamentals.s3.amazonaws.com/IPEDS_Business_Degrees.xlsx"
nd_degrees = pd.read_excel(url, sheet_name="Notre Dame", index_col="ID")

# 创建两个新的DataFrame:nd_ug_degrees 和 nd_gr_degrees
nd_ug_degrees = nd_degrees[nd_degrees["Degree"]=="bachelor"]
nd_gr_degrees = nd_degrees[nd_degrees["Degree"]=="master"]

# 显示前5行
display(nd_ug_degrees.head())
display(nd_gr_degrees.head())

# 问题2
# 尝试将数据框在垂直方向上重新组合并保留现有的索引值
try:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees] , verify_integrity = True)
except:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees]).reset_index(drop = True)
finally:
    display(nd_stacked)

请注意,代码中的缩进可能受到排版的影响,请在运行之前确保代码缩进正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-22 11:24:29 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +30 鱼币

本帖最后由 isdkz 于 2023-4-22 11:28 编辑

根据题目要求,以下是填写完整的代码:
import pandas as pd

# 问题1
# 从远程加载数据
url = "https://coding-fundamentals.s3.amazonaws.com/IPEDS_Business_Degrees.xlsx"
nd_degrees = pd.read_excel(url, sheet_name="Notre Dame", index_col="ID")

# 创建两个新的DataFrame:nd_ug_degrees 和 nd_gr_degrees
nd_ug_degrees = nd_degrees[nd_degrees["Degree"]=="bachelor"]
nd_gr_degrees = nd_degrees[nd_degrees["Degree"]=="master"]

# 显示前5行
display(nd_ug_degrees.head())
display(nd_gr_degrees.head())

# 问题2
# 尝试将数据框在垂直方向上重新组合并保留现有的索引值
try:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees] , verify_integrity = True)
except:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees]).reset_index(drop = True)
finally:
    display(nd_stacked)

请注意,代码中的缩进可能受到排版的影响,请在运行之前确保代码缩进正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

发表于 2023-4-22 11:24:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 11:27:23 | 显示全部楼层
针对题目1和2,应该先导入 pandas 库,并根据要求填写代码实现指令要求。

import pandas as pd

# 题目1
nd_degrees = pd.read_excel("https://coding-fundamentals.s3.amazonaws.com/ND-business_Degrees.xlsx", sheet_name="Notre Dame", index_col="ID")
nd_ug_degrees = nd_degrees[nd_degrees["Degree"]=="bachelor"]
nd_gr_degrees = nd_degrees[nd_degrees["Degree"]=="master"]
print(nd_ug_degrees.head(5))
print(nd_gr_degrees.head(5))
# 题目2
try:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees], axis=0, verify_integrity=True)
except ValueError:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees], axis=0, ignore_index=True)
display(nd_stacked)

其中第一段代码实现了题目1的要求,即创建并处理数据框。线上提供的 Excel 文件之中,命名为 "Notre Dame" 的表格中,有两列分别为 "ID" 和 "Degree"。因此我们可以通过 `read_excel` 函数读取该表格,同时设置 "ID" 为索引标签。然后,可以使用 `.loc[]` 方法筛选出符合条件的行(即 "Degree" 列为 "bachelor" 或者 "master" 的行),分别存储到 `nd_ug_degrees` 和 `nd_gr_degrees` 变量中。最后使用 `.head()` 方法显示这两份数据框的前 5 行。

第二段代码则是实现题目2的要求。我们需要将 `nd_ug_degrees` 和 `nd_gr_degrees` 在垂直方向上重新组合,并且为每一行设置唯一的索引。使用 `.concat()` 函数可以将这两份数据框按照竖直方向拼接起来,其中 `axis=0` 表示竖直方向,`verify_integrity=True` 表示在拼接时验证索引的唯一性,若出现重复则抛出 `valueerror` 异常。如果确保数据框中不存在重复的索引,则可以将 `verify_integrity=true` 改为 `ignore_index=true` 来忽略掉这个检查。最后,使用 `display()` 方法显示拼接好的 `nd_stacked` 数据框。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 11:31:30 | 显示全部楼层
以下是详细解题思路和步骤:

题目1和2的主要任务是从远程加载Excel数据并根据条件创建新的数据框,然后在垂直方向上组合它们。具体步骤如下:

步骤1: 导入pandas库
我们需要用到pandas库来处理DataFrame。所以首先需要导入pandas库。
import pandas as pd

步骤2: 加载远程Excel文件数据
题目要求从远程URL加载数据,使用pd.read_excel方法。我们需要提供URL地址、表格名称(sheet_name)和索引列(index_col)。
url = "https://coding-fundamentals.s3.amazonaws.com/IPEDS_Business_Degrees.xlsx"
nd_degrees = pd.read_excel(url, sheet_name="Notre Dame", index_col="ID")

步骤3: 创建新的数据框
题目要求基于原始数据框nd_degrees创建两个新的数据框,一个包含学士学位,一个包含硕士学位。我们可以通过筛选 "Degree" 列来完成此任务。
nd_ug_degrees = nd_degrees[nd_degrees["Degree"]=="bachelor"]
nd_gr_degrees = nd_degrees[nd_degrees["Degree"]=="master"]

步骤4: 显示新数据框的前5行
题目要求显示新数据框的前5行。我们可以使用head方法完成此任务。
display(nd_ug_degrees.head())
display(nd_gr_degrees.head())

步骤5: 垂直方向上组合新数据框
题目要求将nd_ug_degrees和nd_gr_degrees数据框在垂直方向上组合。我们可以使用pd.concat方法完成此任务。同时要求在组合过程中保留原有的索引值或将索引值重置为连续的数字。

- 首先,我们尝试使用pd.concat方法并设置参数verify_integrity=True。这将要求pd.concat方法在组合过程中检查是否有重复的索引值。如果没有重复的索引值,则可以保留原有的索引值。
- 如果上述尝试失败并抛出异常,我们可以捕获异常并重置索引值。在这种情况下,我们可以使用pd.concat方法,然后调用reset_index方法,设置drop=True以删除旧的索引并创建新的连续索引值。
- 最后,我们使用display方法显示最终的nd_stacked数据框。
try:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees] , verify_integrity = True)
except:
    nd_stacked = pd.concat([nd_ug_degrees, nd_gr_degrees]).reset_index(drop = True)
finally:
    display(nd_stacked)

以上是解题的详细思路和步骤。请确保代码缩进正确,并在本地Python环境中运行该代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-22 11:36:04 | 显示全部楼层
可恶!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-22 11:55:55 | 显示全部楼层

鱼币谁不爱呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-4-22 12:21:54 | 显示全部楼层

这个不重要,重要的是我竟然……
话说今天问的问题有亿点点少啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 15:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表