我在德克萨斯医院出院数据集工作,我正试图在4年内确定最常见的100项首席外科手术程序。
对此我需要经历每年的每个季度并计算程序,但是当我尝试合并不同的季度时,结果是系列而非数据框架。
top_procedures = None
for year in range(6, 10):
for quarter in range(1, 5):
quarter_data = pd.read_table(
filepath_or_buffer="/path/to/texas/data/PUDF_base"
+ str(quarter) + "q200" + str(year) + "_tab.txt",
)
quarter_data = quarter_data[quarter_data["THCIC_ID"] != 999999]
quarter_data = quarter_data[quarter_data["THCIC_ID"] != 999998]
quarter_procedures = quarter_data["PRINC_SURG_PROC_CODE"].value_counts()
quarter_procedures = pd.DataFrame(
{"PRINC_SURG_PROC_CODE": quarter_procedures.index, "count": quarter_procedures.values})
top_procedures = quarter_procedures if (top_procedures is None) else \
top_procedures.merge(
right=quarter_procedures,
how="outer",
on="PRINC_SURG_PROC_CODE"
).set_index(
["PRINC_SURG_PROC_CODE"]
).sum(
axis=1
)
你可以告诉我我做错了什么吗?从documentation看起来它应该返回一个DataFrame。
干杯,
丹
答案 0 :(得分:1)
合并确实会返回一个数据帧,但是在你的代码中,你在合并之后在轴= 1(一行中的所有值)上求和,然后给出一个序列(因为所有列的值在一个最终中汇总在一起)列)。
希望有所帮助。