Python Pandas:将numpy数组分配给dataframe的一部分

4

假设我有这样一个数据框:

 A    B     C 
 1   NaN   NaN 
 2   NaN   NaN 

我有一个如下的numpy数组 np_array = ['ab', 'bc'],我希望将这个数组作为dataframe的一部分,即:

 A    B      C 
 1   'ab'   'bc'
 2   NaN     NaN 

我应该如何以最高效的方式完成这件事呢?谢谢 =)

df.loc[df['A'].eq(1), ['B','C']] = np_array - ansev
1
或者:df.iloc[0, 1:] = np_array... - Jon Clements
或者:df.fillna({c:v for c,v in zip(df.columns, np_array)}, limit=1) - luigigi
2个回答

1
尝试以下解决方案:

import pandas as pd
import numpy as np

dic = {'A': [1, 2], 'B': [None, None], 'C': [None, None]}
np_array = np.array(['ab', 'bc'])
df = pd.DataFrame(dic)

print(df)

#Method 1
df.iloc[0, 1:] = np_array
print(df)

#Medthod 2

df = pd.DataFrame(dic)
df.loc[0, ['B', 'C']] = np_array
print(df)

输出

   A     B     C
0  1  None  None
1  2  None  None

   A     B     C
0  1    ab    bc
1  2  None  None

Name: 0, dtype: object

   A     B     C
0  1    ab    bc
1  2  None  None

0

可以用以下方式完成:

df.iloc[row] = np_array

其中row是您想要更改的从0开始索引的行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接