[英]How to add numpy array elements row-wise to a pandas dataframe?
我有一個 numpy 數組arr的形式:
array([[ 0.00021284, -0.04443965, 0.03926146, ..., 0.04830161,
-0.11913304, 0.03370821],
[ 0.01778569, -0.05192029, -0.00792321, ..., -0.01799901,
-0.09819183, 0.06020728],
[-0.00748426, -0.02401578, 0.01762747, ..., 0.09334017,
-0.11837556, 0.00603597],
[-0.03505319, -0.01932572, -0.03248611, ..., 0.00356432,
-0.082398 , 0.03887841],
[-0.05111802, -0.0309066 , 0.03542011, ..., -0.01343899,
-0.10434885, -0.0315006 ]], dtype=float32)
假設形狀是 (5, 512)
我還有一個 Pandas 數據框df的形式:
Message
0 How are you?
1 What is your name?
2 What do you do?
3 What is your address?
4 Let's hang out?
我想通過創建一個新列將arr中的每一行作為df 中的一個元素附加:
Message Vector
0 How are you? [ 0.00021284, -0.04443965, 0.03926146, ..., 0.04830161, -0.11913304, 0.03370821]
1 What is your name? [ 0.01778569, -0.05192029, -0.00792321, ..., -0.01799901, -0.09819183, 0.06020728]
2 What do you do? [-0.00748426, -0.02401578, 0.01762747, ..., 0.09334017, -0.11837556, 0.00603597]
3 What is your address? [-0.03505319, -0.01932572, -0.03248611, ..., 0.00356432, -0.082398, 0.03887841]
4 Let's hang out? [-0.05111802, -0.0309066 , 0.03542011, ..., -0.01343899, -0.10434885, -0.0315006 ]
實現這一目標的有效方法是什么?
為問題創建一個數組,並將其轉換為列表。
a = np.array([[ 0.00021284, -0.04443965, 0.03926146, 0.04830161,
-0.11913304, 0.03370821],
[ 0.01778569, -0.05192029, -0.00792321, -0.01799901,
-0.09819183, 0.06020728],
[-0.00748426, -0.02401578, 0.01762747, 0.09334017,
-0.11837556, 0.00603597],
[-0.03505319, -0.01932572, -0.03248611, 0.00356432,
-0.082398 , 0.03887841],
[-0.05111802, -0.0309066 , 0.03542011, -0.01343899,
-0.10434885, -0.0315006 ]]).tolist()
結果是:
print(a)
[[0.00021284, -0.04443965, 0.03926146, 0.04830161, -0.11913304, 0.03370821], [0.01778569, -0.05192029, -0.00792321, -0.01799901, -0.09819183, 0.06020728], [-0.00748426, -0.02401578, 0.01762747, 0.09334017, -0.11837556, 0.00603597], [-0.03505319, -0.01932572, -0.03248611, 0.00356432, -0.082398, 0.03887841], [-0.05111802, -0.0309066, 0.03542011, -0.01343899, -0.10434885, -0.0315006]]
然后將列表添加到數據框中。
df = pd.DataFrame({"Message": [
"How are you?",
"What is your name?",
"What do you do?",
"What is your address?",
"Let's hang out?"]})
df['Array'] = a
print(df)
為了:
Message Array
0 How are you? [0.00021284, -0.04443965, 0.03926146, 0.048301...
1 What is your name? [0.01778569, -0.05192029, -0.00792321, -0.0179...
2 What do you do? [-0.00748426, -0.02401578, 0.01762747, 0.09334...
3 What is your address? [-0.03505319, -0.01932572, -0.03248611, 0.0035...
4 Let's hang out? [-0.05111802, -0.0309066, 0.03542011, -0.01343...
要在開始時創建所有內容,您可以使用字典:
df = pd.DataFrame({"Message": [
"How are you?",
"What is your name?",
"What do you do?",
"What is your address?",
"Let's hang out?"], "Array": a})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.