合并导致系列

时间:2017-06-13 11:30:15

标签: python pandas

我在德克萨斯医院出院数据集工作,我正试图在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。

干杯,

1 个答案:

答案 0 :(得分:1)

合并确实会返回一个数据帧,但是在你的代码中,你在合并之后在轴= 1(一行中的所有值)上求和,然后给出一个序列(因为所有列的值在一个最终中汇总在一起)列)。

希望有所帮助。