此问题在此处已有答案:
Pandas DataFrame: replace all values in a column, based on condition(8个答案)
How to filter Pandas dataframe using 'in' and 'not in' like in SQL(11个答案)
20小时前就关门了。
我有以下df
:
df = pd.DataFrame({
'Q0_0': ["India", "Algeria", "India", "U.S.A", "Morocco", "Tunisia", "U.S.A", "France", "Russia", "Algeria"],
'Q1_1': [np.random.randint(1,100) for i in range(10)],
'Q1_2': np.random.random(10),
'Q1_3': np.random.randint(2, size=10),
'Q2_1': [np.random.randint(1,100) for i in range(10)],
'Q2_2': np.random.random(10),
'Q2_3': np.random.randint(2, size=10)
})
显示如下:
| | Q0_0|第1季度_1|第1季度-第2季度|第一季度-第三季度|第二季度_1|第二季度_2|第二季度至第三季度|
| - -|- -|- -|- -|- -|- -|- -|- -|
| 第0页|印度Name|二十一个|0.326856单位|第0页|五十一个|0.520506单位|第0页|
| 一个|阿尔及利亚Name|七个|0.504580单位|一个|四十三|0.953744单位|一个|
| 2个|印度Name|六十七|0.327273单位|一个|三十四|0.840453单位|一个|
| 三个| U.S.A |四十九|0.056478单位|第0页|六十七|0.309559单位|一个|
| 四个|摩洛哥|七十一|千分之七四三九一三|一个|七十六|0.240706单位|一个|
| 五个|突尼斯Name|三十一个|0.060707单位|一个|七十八|0.576598美元|第0页|
| 六个| U.S.A |二十五个|0.588239美元|一个|六十一|0.133856单位|一个|
| 七个|法国Name|九十九|0.991723美元|第0页|八十五|0.274825单位|一个|
| 八个|俄罗斯Name|九个|0.846950单位|一个|六十一|0.279948美元|一个|
| 九个|阿尔及利亚Name|七十九|0.176326单位|一个|七十八|0.88万1051|一个|
我需要将Q0_0
列中除India
和U.S.A
以外的国家/地区更改为Òther
。
所需输出
Q0_0 Q1_1 Q1_2 Q1_3 Q2_1 Q2_2 Q2_3
0 India 21 0.326856 0 51 0.520506 0
1 Other 7 0.504580 1 43 0.953744 1
2 India 67 0.327273 1 34 0.840453 1
3 U.S.A 49 0.056478 0 67 0.309559 1
4 Other 71 0.743913 1 76 0.240706 1
5 Other 31 0.060707 1 78 0.576598 0
6 U.S.A 25 0.588239 1 61 0.133856 1
7 Other 99 0.991723 0 85 0.274825 1
8 Other 9 0.846950 1 61 0.279948 1
9 Other 79 0.176326 1 78 0.881051 1
我尝试使用pandas.series.str.replace()
,但没有成功。
我们将非常感谢您的帮助,谢谢。
2条答案
按热度按时间r8uurelv1#
可以将
pandas.Series.mask
与pandas.Series.fillna
一起使用:#输出:
6pp0gazn2#
您可以用途: