gpt4 book ai didi

python - 操纵存在于 Pandas 中另一个数据框中的数据框的行

转载 作者:太空宇宙 更新时间:2023-11-04 00:04:43 25 4
gpt4 key购买 nike

我有一个包含我所有训练、验证和测试数据的数据框。以及仅包含我的测试数据的数据框。数据点由“data_index”指定。

df_all = pd.DataFrame({'data_index': range(7), 'split': 'NA'})
df_all.set_index('data_index', inplace=True)

df_test = pd.DataFrame({'data_index': [3, 5], 'split': 'test'})
df_test.set_index('data_index', inplace=True)



split
data_index
0 NA
1 NA
2 NA
3 NA
4 NA
5 NA
6 NA

split
data_index
3 test
5 test

如何根据测试数据帧在第一个数据帧中填写“拆分”列的值?为了得到这样的东西:

                split
data_index
0 train/val
1 train/val
2 train/val
3 test
4 train/val
5 test
6 train/val

最佳答案

使用Index.mapfillna :

df_all['split'] = df_all.index.map(df_test['split'].get)
df_all['split']= df_all['split'].fillna('train/val')
print (df_all)
split
data_index
0 train/val
1 train/val
2 train/val
3 test
4 train/val
5 test
6 train/val

如果有缺失值使用 combine_first :

#defined np.nan for missing values, not string NA
df_all = pd.DataFrame({'data_index': range(7), 'split': np.nan})
df_all.set_index('data_index', inplace=True)

df_test = pd.DataFrame({'data_index': [3, 5], 'split': 'test'})
df_test.set_index('data_index', inplace=True)

df_all['split'] = df_all['split'].combine_first(df_test['split']).fillna('train/val')
print (df_all)
split
data_index
0 train/val
1 train/val
2 train/val
3 test
4 train/val
5 test
6 train/val

关于python - 操纵存在于 Pandas 中另一个数据框中的数据框的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com