如何在从Pandas DataFrame提取的数组开头添加元素?
解决方法:在Pandas提取的数组开头添加元素999
你遇到的问题是因为dat['X'].values返回的是numpy数组,而numpy的+运算符会触发广播机制,把标量999和数组每个元素相加,而非列表那样的拼接操作。以下是几种正确实现方式:
方法1:转列表拼接后转回数组
先把Pandas Series转成普通列表,和[999]拼接后再转回numpy数组:
import pandas as pd import numpy as np dat = pd.DataFrame({'X' : [1,2], 'Y' : ['A', 'B']}) result = np.array([999] + dat['X'].tolist()) print(result) # 输出: array([999, 1, 2])
方法2:用numpy的concatenate函数
直接使用numpy的数组拼接函数,需要把999包装成数组/列表后和原数组合并:
import pandas as pd import numpy as np dat = pd.DataFrame({'X' : [1,2], 'Y' : ['A', 'B']}) result = np.concatenate([[999], dat['X'].values]) print(result) # 输出: array([999, 1, 2])
方法3:保持Pandas Series类型(可选)
如果不需要转成numpy数组,想直接操作Series,可以用append方法:
import pandas as pd dat = pd.DataFrame({'X' : [1,2], 'Y' : ['A', 'B']}) result_series = pd.Series([999]).append(dat['X'], ignore_index=True) print(result_series) # 输出: # 0 999 # 1 1 # 2 2 # dtype: int64 # 转数组可使用 result_series.values
内容的提问来源于stack exchange,提问作者Brian Smith
相关产品推荐
相关产品推荐

