我想要用我保存的另一个pd.series替换数据框中一列的前n个元素。例如:
category price store testscore
0 Cleaning 11.42 Walmart NaN
1 Cleaning 23.50 Dia NaN
2 Entertainment 19.99 Walmart NaN
3 Entertainment 15.95 Fnac NaN
4 Tech 55.75 Dia NaN
5 Tech 111.55 Walmart NaN
我希望替换testscore中的前三个NaN值为新的字符串。
假设我有一个变量:
cats = pd.Series(df['category'][0:2])
那么我能否将其放置在testscore列中...
category price store testscore
0 Cleaning 11.42 Walmart Cleaning
1 Cleaning 23.50 Dia Cleaning
2 Entertainment 19.99 Walmart Entertainment
3 Entertainment 15.95 Fnac NaN
4 Tech 55.75 Dia NaN
5 Tech 111.55 Walmart NaN
但是每当我尝试这样做时,它都不起作用。
创建此虚假数据集的代码:
import pandas as pd
import numpy as np
df = pd.DataFrame({'category': ['Cleaning', 'Cleaning', 'Entertainment', 'Entertainment', 'Tech', 'Tech'],
'store': ['Walmart', 'Dia', 'Walmart', 'Fnac', 'Dia','Walmart'],
'price':[11.42, 23.50, 19.99, 15.95, 55.75, 111.55],
'testscore': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]})
print(df)
df2 = pd.DataFrame({'category': ['Cleaning', 'Cleaning', 'Entertainment', 'Entertainment', 'Tech', 'Tech'],
'store': ['Walmart', 'Dia', 'Walmart', 'Fnac', 'Dia','Walmart'],
'price':[11.42, 23.50, 19.99, 15.95, 55.75, 111.55],
'testscore': ['Cleaning', 'Cleaning', 'Entertainment', np.nan, np.nan, np.nan]})
print(df2)