[英]Pandas - String Concatenation with Array column
我正在嘗試從 dataframe 中的兩列創建一個新字符串。 我的一列包含 1 個值。 另一列包含一個數組。 最終結果應該類似於下面的第三列。
Alpha Val Result
0 A ['1, 2, 3'] ['A1', 'A2', 'A3']
我嘗試過列表理解,但它只返回一個錯誤“只能將 str(不是“list”)連接到 str”
[alpha + val for alpha in df['Alpha'].str.split(",") for val in df['Val'].str.split(",")]
這種類似於 1X3 矩陣的 1X1 矩陣(但連接字符串),但我不確定如何使用 pandas 來實現這一點。
import pandas as pd
df = pd.DataFrame({'Alpha':['A', 'B'],
'Val':[['1, 2, 3'], ['4, 5, 6, 7']]})
def newlist(A,B):
return [A + i.strip() for i in B[0].split(',')]
df['Result'] = df.apply(lambda x: newlist(x.Alpha, x.Val), axis=1)
使用@challasandeep420 提供的數據,我們還可以:
df['Result'] = (df['Val'].str[0].str.split(',').explode().str.strip()
.radd(df['Alpha']).groupby(level=0).agg(list))
print(df)
Alpha Val Result
0 A [1, 2, 3] [A1, A2, A3]
1 B [4, 5, 6, 7] [B4, B5, B6, B7]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.