[英]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.