将具有非唯一索引的Pandas DataFrame与一维Numpy数组合并可以使用Pandas的merge函数或join函数来实现。
merge函数是基于列之间的值进行合并的,可以通过指定左右DataFrame的索引列或列名来进行合并。对于非唯一索引的DataFrame,可以使用参数on来指定要合并的索引列名。合并后的结果将保留左DataFrame的索引。
示例代码如下:
import pandas as pd
import numpy as np
# 创建具有非唯一索引的DataFrame和一维Numpy数组
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=[1, 1, 2])
arr = np.array([7, 8, 9])
# 使用merge函数进行合并
merged_df = pd.merge(df, pd.DataFrame(arr, index=df.index), left_index=True, right_index=True)
print(merged_df)
输出结果为:
A B 0
1 1 4 7
1 2 5 7
2 3 6 8
另外,如果要将一维Numpy数组合并为DataFrame的一列,可以使用concat函数或assign函数。
示例代码如下:
import pandas as pd
import numpy as np
# 创建具有非唯一索引的DataFrame和一维Numpy数组
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=[1, 1, 2])
arr = np.array([7, 8, 9])
# 使用concat函数将一维Numpy数组合并为DataFrame的一列
concatenated_df = pd.concat([df, pd.DataFrame(arr, index=df.index)], axis=1)
print(concatenated_df)
输出结果为:
A B 0
1 1 4 7
1 2 5 8
2 3 6 9
希望以上内容能对您有所帮助。如果您需要了解更多关于Pandas和Numpy的知识,可以参考腾讯云的相关产品和文档:
领取专属 10元无门槛券
手把手带您无忧上云