簡體   English   中英

Pandas:根據我的 dataframe 中的其他值列表創建一個新列

[英]Pandas: Create a new column based on a list of other values in my dataframe

通過使用以下 dataframe,我想根據 dataframe 中的其他值列表創建一個新列

import pandas as pd

df1 = pd.DataFrame(
    {
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
        "C": ["C0", "C1", "C2", "C3"],
        "D": ["D0", "D1", "D2", "D3"],
    },
    index=[0, 1, 2, 3],
)

我想要的 output 示例如下(尊重順序很重要):

    A   B   C   D  my_group
0  A0  B0  C0  D0  [D0, A0, B0]
1  A1  B1  C1  D1  [D1, A1, B1]
2  A2  B2  C2  D2  [D2, A2, B2]
3  A3  B3  C3  D3  [D3, A3, B3]

我看到一些與 group by 類似的例子,但這不是我正在尋找的答案: 如何將 dataframe 行分組到 pandas groupby 中的列表中

這是從定義的列創建列表的簡單案例

import pandas as pd

df1 = pd.DataFrame(
    {
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
        "C": ["C0", "C1", "C2", "C3"],
        "D": ["D0", "D1", "D2", "D3"],
    },
    index=[0, 1, 2, 3],
)

df1["my_group"] = df1.loc[:,["D","A","B"]].apply(list, axis=1)


一個 C D 我的組
0 A0 B0 C0 D0 ['D0','A0','B0']
1 A1 B1 C1 D1 ['D1','A1','B1']
2 A2 B2 C2 D2 ['D2','A2','B2']
3 A3 B3 C3 D3 ['D3','A3','B3']

只做tolist

df1['new'] = df1[["D","A","B"]].to_numpy().tolist()
df1
Out[424]: 
    A   B   C   D           new
0  A0  B0  C0  D0  [D0, A0, B0]
1  A1  B1  C1  D1  [D1, A1, B1]
2  A2  B2  C2  D2  [D2, A2, B2]
3  A3  B3  C3  D3  [D3, A3, B3]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM