【问题标题】:Series : dynamic transposition optimization系列:动态换位优化
【发布时间】:2019-10-21 07:55:14
【问题描述】:

我想将 Pandas 系列转换为转置数据帧,其中键/值的数量是动态的。然后,转置后的 Dataframe 也必须具有动态列数。

我成功使用了 to_frame() 和 to_transpose() 方法,但我想优化我的代码。 更准确地说,我需要使用 reset_index() 方法,然后删除“索引”创建的无用列......我认为它可以更好地实现。

请找到我当前的代码:

current_case_details = row.to_frame().transpose().reset_index()
current_case_details.drop(columns=['index'], inplace=True)
print("CURRENT CASE DETAILS:\n{0}\n".format(current_case_details))

请找到预期结果的说明:picture of expected result

您有任何解决方案来使用“标准”Pandas 系列/数据框方法/选项优化我的代码吗?

感谢您的帮助:)

【问题讨论】:

    标签: python python-3.x pandas dataframe series


    【解决方案1】:

    使用DataFrame.transpose + DataFrame.set_index:

    new_df=serie.to_frame().T.reset_index(drop=True)
    

    例子:

    serie=pd.Series([1,2,3,'AA'],['c1','c2','c3','c4'],name='Value')
    print(serie)
    
    c1     1
    c2     2
    c3     3
    c4    AA
    Name: Value, dtype: object
    

    new_df=serie.to_frame().T.reset_index(drop=True)
    print(new_df)
    
      c1 c2 c3  c4
    0  1  2  3  AA 
    

    【讨论】:

    • 您好,“行”变量是一个系列(不是数据框)。所以建议的解决方案不起作用(参见附图)。
    • 那么你正在寻找 reset_index(drop=True) 。请检查新的解决方案:)
    猜你喜欢
    • 2022-10-04
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多