【问题标题】:Pandas dataframe map rows values with column namesPandas 数据框使用列名映射行值
【发布时间】:2019-12-02 23:40:57
【问题描述】:

我的行值是 [1,2,3,4,5,6,7,8] 和 column_names ['col1','col2','col3','col4','col5','col6','col7']

如何为 pandas 制作单个数据框,如下所示:

col1 col2 col3 col4 col5 col6 col7
  1   2    3     4    5    6   7 

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用嵌套列表:

    new_df = pd.DataFrame([[1,2,3,4,5,6,7]],
                          columns=['col1','col2','col3','col4','col5','col6','col7'])
    print (new_df)
       col1  col2  col3  col4  col5  col6  col7
    0     1     2     3     4     5     6     7
    

    【讨论】:

    • 我不认为操作意味着创建一个新的df,而是过滤它。我可能错了,但我会为它写一个单独的遮阳篷
    • @Felício 实际上他的意思是新的 Df。
    • @arshpreet jezrael awnser 在这种情况下应该可以工作。无论如何,我会留下它以防它对其他人有用。
    【解决方案2】:

    如果您的意思是过滤现有的 df,您可以通过多种方式进行,这是我的建议:

    #first you create the auxiliary lists
    values = [1,2,3,4,5,6,7,8]
    cols = ['col1','col2','col3','col4','col5','col6','col7']
    
    #next, you create a filter for each column
    bool_filter = None
    for col, value in zip(cols, values):
       if is None bool_filter:
           bool_filter = df[col] == value
       else:
           bool_filter = bool_filter & (df[col] == value)
    
    #finnaly apply it to the df
    df[bool_filter] 
    

    【讨论】:

    • 要从这个过滤器创建一个 new_df,他可以在末尾分配 new_df = df[bool_filter]
    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 2019-12-04
    • 2018-09-29
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 2021-08-21
    相关资源
    最近更新 更多