Pandas 基本操作¶

一、数据导入¶

In [ ]:
import pandas as pd
In [ ]:
df = pd.read_csv('./dataset/output.csv')
df
Out[ ]:
Key ef100 ef111 ef_sub_100 ef_sub_111 index mass radius melting
0 Si -1.115722 -0.701245 -0.569736 -0.225225 14 28.085000 111 1687.00
1 Sb -1.522549 -0.543873 0.870210 1.027179 51 121.760000 133 904.10
2 Bi -1.352188 -0.177808 1.968962 1.815817 83 208.980400 143 544.67
3 Pb -1.160016 -0.019294 1.593083 1.631911 82 207.200000 154 600.80
4 In -1.033518 -0.200844 0.416942 0.519860 49 114.818000 156 429.91
5 Ti 0.554584 0.775988 0.004879 0.303309 22 47.867000 176 1930.00
6 Ag -0.527524 0.042239 0.157998 0.028100 47 107.868200 165 1234.00
7 Ni 0.177254 0.330622 -0.122791 -0.103603 28 58.693400 149 1726.00
8 Zn -0.667779 0.135557 -0.359509 -0.212413 30 65.380000 142 692.88
9 Tl -0.892003 0.070464 1.355970 1.374303 81 204.380000 156 577.00
10 Ga -1.282309 -0.644779 -0.719299 -0.521194 31 69.723000 136 302.91
11 Ir 0.624956 0.319982 0.162133 0.390349 77 192.217000 180 2716.00
12 Sn -1.283931 -0.485359 0.464447 0.686663 50 118.710000 145 505.21
13 Ge -1.151102 -0.592351 -0.159282 0.146471 32 72.630000 125 1211.40
14 Mg -0.843692 -0.179419 -0.319915 -0.124790 12 24.305000 145 923.00
15 Au -0.870214 -0.358127 -0.124026 -0.328712 79 196.966569 174 1337.73
16 Al -1.117972 -0.600215 -1.012658 -0.729136 13 26.981538 118 933.40
17 Pd -0.718155 -0.438415 -0.581004 -0.657751 46 106.420000 169 1825.00
18 Pt -0.650905 -0.565435 -0.507245 -0.628432 78 195.084000 177 2045.00
19 Cd -0.557417 0.130099 0.719414 0.780941 48 112.414000 161 594.33
20 Rh -0.032545 -0.152974 -0.363279 -0.197038 45 102.905500 173 2239.00

二、数据查看¶

  1. 查看数据前五行, 后五行
In [ ]:
print(df.head())
print(df.tail())
  Key     ef100     ef111  ef_sub_100  ef_sub_111  index      mass  radius  \
0  Si -1.115722 -0.701245   -0.569736   -0.225225     14   28.0850     111   
1  Sb -1.522549 -0.543873    0.870210    1.027179     51  121.7600     133   
2  Bi -1.352188 -0.177808    1.968962    1.815817     83  208.9804     143   
3  Pb -1.160016 -0.019294    1.593083    1.631911     82  207.2000     154   
4  In -1.033518 -0.200844    0.416942    0.519860     49  114.8180     156   

   melting  
0  1687.00  
1   904.10  
2   544.67  
3   600.80  
4   429.91  
   Key     ef100     ef111  ef_sub_100  ef_sub_111  index        mass  radius  \
16  Al -1.117972 -0.600215   -1.012658   -0.729136     13   26.981538     118   
17  Pd -0.718155 -0.438415   -0.581004   -0.657751     46  106.420000     169   
18  Pt -0.650905 -0.565435   -0.507245   -0.628432     78  195.084000     177   
19  Cd -0.557417  0.130099    0.719414    0.780941     48  112.414000     161   
20  Rh -0.032545 -0.152974   -0.363279   -0.197038     45  102.905500     173   

    melting  
16   933.40  
17  1825.00  
18  2045.00  
19   594.33  
20  2239.00  
  1. 查看数据信息(如数据类型、非空值数量等):
In [ ]:
print(df.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 21 entries, 0 to 20
Data columns (total 9 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   Key         21 non-null     object 
 1   ef100       21 non-null     float64
 2   ef111       21 non-null     float64
 3   ef_sub_100  21 non-null     float64
 4   ef_sub_111  21 non-null     float64
 5   index       21 non-null     int64  
 6   mass        21 non-null     float64
 7   radius      21 non-null     int64  
 8   melting     21 non-null     float64
dtypes: float64(6), int64(2), object(1)
memory usage: 1.6+ KB
None
  1. 查看数据描述性统计信息(如均值、标准差等):
In [ ]:
print(df.describe())
           ef100      ef111  ef_sub_100  ef_sub_111      index        mass  \
count  21.000000  21.000000   21.000000   21.000000  21.000000   21.000000   
mean   -0.734416  -0.183580    0.136919    0.236981  47.523810  113.494696   
std     0.604809   0.391552    0.789211    0.749763  24.307651   64.116072   
min    -1.522549  -0.701245   -1.012658   -0.729136  12.000000   24.305000   
25%    -1.151102  -0.543873   -0.363279   -0.225225  30.000000   65.380000   
50%    -0.870214  -0.179419   -0.122791    0.028100  47.000000  107.868200   
75%    -0.557417   0.070464    0.464447    0.686663  77.000000  192.217000   
max     0.624956   0.775988    1.968962    1.815817  83.000000  208.980400   

           radius      melting  
count   21.000000    21.000000  
mean   151.809524  1188.540000  
std     19.943969   687.866522  
min    111.000000   302.910000  
25%    142.000000   594.330000  
50%    154.000000   933.400000  
75%    169.000000  1726.000000  
max    180.000000  2716.000000  
  1. 查看数据列名
In [ ]:
print(df.columns)
Index(['Key', 'ef100', 'ef111', 'ef_sub_100', 'ef_sub_111', 'index', 'mass',
       'radius', 'melting'],
      dtype='object')
  1. 查看数据索引
In [ ]:
print(df.index)
RangeIndex(start=0, stop=21, step=1)
  1. 按列名选择数据
In [ ]:
print(df['ef100'])
0    -1.115722
1    -1.522549
2    -1.352188
3    -1.160016
4    -1.033518
5     0.554584
6    -0.527524
7     0.177254
8    -0.667779
9    -0.892003
10   -1.282309
11    0.624956
12   -1.283931
13   -1.151102
14   -0.843692
15   -0.870214
16   -1.117972
17   -0.718155
18   -0.650905
19   -0.557417
20   -0.032545
Name: ef100, dtype: float64

三、数据修改¶

3.1 列操作¶

  1. 按列名修改数据:
In [ ]:
df['index'] = [str(x) for x in range(len(df))]
print(df)
   Key     ef100     ef111  ef_sub_100  ef_sub_111 index        mass  radius  \
0   Si -1.115722 -0.701245   -0.569736   -0.225225     0   28.085000     111   
1   Sb -1.522549 -0.543873    0.870210    1.027179     1  121.760000     133   
2   Bi -1.352188 -0.177808    1.968962    1.815817     2  208.980400     143   
3   Pb -1.160016 -0.019294    1.593083    1.631911     3  207.200000     154   
4   In -1.033518 -0.200844    0.416942    0.519860     4  114.818000     156   
5   Ti  0.554584  0.775988    0.004879    0.303309     5   47.867000     176   
6   Ag -0.527524  0.042239    0.157998    0.028100     6  107.868200     165   
7   Ni  0.177254  0.330622   -0.122791   -0.103603     7   58.693400     149   
8   Zn -0.667779  0.135557   -0.359509   -0.212413     8   65.380000     142   
9   Tl -0.892003  0.070464    1.355970    1.374303     9  204.380000     156   
10  Ga -1.282309 -0.644779   -0.719299   -0.521194    10   69.723000     136   
11  Ir  0.624956  0.319982    0.162133    0.390349    11  192.217000     180   
12  Sn -1.283931 -0.485359    0.464447    0.686663    12  118.710000     145   
13  Ge -1.151102 -0.592351   -0.159282    0.146471    13   72.630000     125   
14  Mg -0.843692 -0.179419   -0.319915   -0.124790    14   24.305000     145   
15  Au -0.870214 -0.358127   -0.124026   -0.328712    15  196.966569     174   
16  Al -1.117972 -0.600215   -1.012658   -0.729136    16   26.981538     118   
17  Pd -0.718155 -0.438415   -0.581004   -0.657751    17  106.420000     169   
18  Pt -0.650905 -0.565435   -0.507245   -0.628432    18  195.084000     177   
19  Cd -0.557417  0.130099    0.719414    0.780941    19  112.414000     161   
20  Rh -0.032545 -0.152974   -0.363279   -0.197038    20  102.905500     173   

    melting  
0   1687.00  
1    904.10  
2    544.67  
3    600.80  
4    429.91  
5   1930.00  
6   1234.00  
7   1726.00  
8    692.88  
9    577.00  
10   302.91  
11  2716.00  
12   505.21  
13  1211.40  
14   923.00  
15  1337.73  
16   933.40  
17  1825.00  
18  2045.00  
19   594.33  
20  2239.00  
  1. 按列条件筛选数据行
In [ ]:
filtered_df = df[df['ef100'] > 0]
filtered_df
# print(filtered_df)
Out[ ]:
Key ef100 ef111 ef_sub_100 ef_sub_111 index mass radius melting
5 Ti 0.554584 0.775988 0.004879 0.303309 5 47.8670 176 1930.0
7 Ni 0.177254 0.330622 -0.122791 -0.103603 7 58.6934 149 1726.0
11 Ir 0.624956 0.319982 0.162133 0.390349 11 192.2170 180 2716.0
  1. 按列条件修改数据
In [ ]:
df.loc[df['ef100'] > 0, 'ef100'] = 0
print(df)
   Key     ef100     ef111  ef_sub_100  ef_sub_111 index        mass  radius  \
0   Si -1.115722 -0.701245   -0.569736   -0.225225     0   28.085000     111   
1   Sb -1.522549 -0.543873    0.870210    1.027179     1  121.760000     133   
2   Bi -1.352188 -0.177808    1.968962    1.815817     2  208.980400     143   
3   Pb -1.160016 -0.019294    1.593083    1.631911     3  207.200000     154   
4   In -1.033518 -0.200844    0.416942    0.519860     4  114.818000     156   
5   Ti  0.000000  0.775988    0.004879    0.303309     5   47.867000     176   
6   Ag -0.527524  0.042239    0.157998    0.028100     6  107.868200     165   
7   Ni  0.000000  0.330622   -0.122791   -0.103603     7   58.693400     149   
8   Zn -0.667779  0.135557   -0.359509   -0.212413     8   65.380000     142   
9   Tl -0.892003  0.070464    1.355970    1.374303     9  204.380000     156   
10  Ga -1.282309 -0.644779   -0.719299   -0.521194    10   69.723000     136   
11  Ir  0.000000  0.319982    0.162133    0.390349    11  192.217000     180   
12  Sn -1.283931 -0.485359    0.464447    0.686663    12  118.710000     145   
13  Ge -1.151102 -0.592351   -0.159282    0.146471    13   72.630000     125   
14  Mg -0.843692 -0.179419   -0.319915   -0.124790    14   24.305000     145   
15  Au -0.870214 -0.358127   -0.124026   -0.328712    15  196.966569     174   
16  Al -1.117972 -0.600215   -1.012658   -0.729136    16   26.981538     118   
17  Pd -0.718155 -0.438415   -0.581004   -0.657751    17  106.420000     169   
18  Pt -0.650905 -0.565435   -0.507245   -0.628432    18  195.084000     177   
19  Cd -0.557417  0.130099    0.719414    0.780941    19  112.414000     161   
20  Rh -0.032545 -0.152974   -0.363279   -0.197038    20  102.905500     173   

    melting  
0   1687.00  
1    904.10  
2    544.67  
3    600.80  
4    429.91  
5   1930.00  
6   1234.00  
7   1726.00  
8    692.88  
9    577.00  
10   302.91  
11  2716.00  
12   505.21  
13  1211.40  
14   923.00  
15  1337.73  
16   933.40  
17  1825.00  
18  2045.00  
19   594.33  
20  2239.00  
  1. 按条件删除数据
In [ ]:
df = df[df['ef100'] != 0]
print(df)
   Key     ef100     ef111  ef_sub_100  ef_sub_111 index        mass  radius  \
0   Si -1.115722 -0.701245   -0.569736   -0.225225     0   28.085000     111   
1   Sb -1.522549 -0.543873    0.870210    1.027179     1  121.760000     133   
2   Bi -1.352188 -0.177808    1.968962    1.815817     2  208.980400     143   
3   Pb -1.160016 -0.019294    1.593083    1.631911     3  207.200000     154   
4   In -1.033518 -0.200844    0.416942    0.519860     4  114.818000     156   
6   Ag -0.527524  0.042239    0.157998    0.028100     6  107.868200     165   
8   Zn -0.667779  0.135557   -0.359509   -0.212413     8   65.380000     142   
9   Tl -0.892003  0.070464    1.355970    1.374303     9  204.380000     156   
10  Ga -1.282309 -0.644779   -0.719299   -0.521194    10   69.723000     136   
12  Sn -1.283931 -0.485359    0.464447    0.686663    12  118.710000     145   
13  Ge -1.151102 -0.592351   -0.159282    0.146471    13   72.630000     125   
14  Mg -0.843692 -0.179419   -0.319915   -0.124790    14   24.305000     145   
15  Au -0.870214 -0.358127   -0.124026   -0.328712    15  196.966569     174   
16  Al -1.117972 -0.600215   -1.012658   -0.729136    16   26.981538     118   
17  Pd -0.718155 -0.438415   -0.581004   -0.657751    17  106.420000     169   
18  Pt -0.650905 -0.565435   -0.507245   -0.628432    18  195.084000     177   
19  Cd -0.557417  0.130099    0.719414    0.780941    19  112.414000     161   
20  Rh -0.032545 -0.152974   -0.363279   -0.197038    20  102.905500     173   

    melting  
0   1687.00  
1    904.10  
2    544.67  
3    600.80  
4    429.91  
6   1234.00  
8    692.88  
9    577.00  
10   302.91  
12   505.21  
13  1211.40  
14   923.00  
15  1337.73  
16   933.40  
17  1825.00  
18  2045.00  
19   594.33  
20  2239.00  
  1. 添加新列
In [ ]:
df['index^2'] = [x*x*x for x in range(len(df))]
print(df)
   Key     ef100     ef111  ef_sub_100  ef_sub_111 index        mass  radius  \
0   Si -1.115722 -0.701245   -0.569736   -0.225225     0   28.085000     111   
1   Sb -1.522549 -0.543873    0.870210    1.027179     1  121.760000     133   
2   Bi -1.352188 -0.177808    1.968962    1.815817     2  208.980400     143   
3   Pb -1.160016 -0.019294    1.593083    1.631911     3  207.200000     154   
4   In -1.033518 -0.200844    0.416942    0.519860     4  114.818000     156   
6   Ag -0.527524  0.042239    0.157998    0.028100     6  107.868200     165   
8   Zn -0.667779  0.135557   -0.359509   -0.212413     8   65.380000     142   
9   Tl -0.892003  0.070464    1.355970    1.374303     9  204.380000     156   
10  Ga -1.282309 -0.644779   -0.719299   -0.521194    10   69.723000     136   
12  Sn -1.283931 -0.485359    0.464447    0.686663    12  118.710000     145   
13  Ge -1.151102 -0.592351   -0.159282    0.146471    13   72.630000     125   
14  Mg -0.843692 -0.179419   -0.319915   -0.124790    14   24.305000     145   
15  Au -0.870214 -0.358127   -0.124026   -0.328712    15  196.966569     174   
16  Al -1.117972 -0.600215   -1.012658   -0.729136    16   26.981538     118   
17  Pd -0.718155 -0.438415   -0.581004   -0.657751    17  106.420000     169   
18  Pt -0.650905 -0.565435   -0.507245   -0.628432    18  195.084000     177   
19  Cd -0.557417  0.130099    0.719414    0.780941    19  112.414000     161   
20  Rh -0.032545 -0.152974   -0.363279   -0.197038    20  102.905500     173   

    melting  index^2  
0   1687.00        0  
1    904.10        1  
2    544.67        8  
3    600.80       27  
4    429.91       64  
6   1234.00      125  
8    692.88      216  
9    577.00      343  
10   302.91      512  
12   505.21      729  
13  1211.40     1000  
14   923.00     1331  
15  1337.73     1728  
16   933.40     2197  
17  1825.00     2744  
18  2045.00     3375  
19   594.33     4096  
20  2239.00     4913  
  1. 删除列
In [ ]:
df = df.drop(['index^2', 'index', 'ef111'], axis=1)
print(df)
   Key     ef100  ef_sub_100  ef_sub_111        mass  radius  melting
0   Si -1.115722   -0.569736   -0.225225   28.085000     111  1687.00
1   Sb -1.522549    0.870210    1.027179  121.760000     133   904.10
2   Bi -1.352188    1.968962    1.815817  208.980400     143   544.67
3   Pb -1.160016    1.593083    1.631911  207.200000     154   600.80
4   In -1.033518    0.416942    0.519860  114.818000     156   429.91
6   Ag -0.527524    0.157998    0.028100  107.868200     165  1234.00
8   Zn -0.667779   -0.359509   -0.212413   65.380000     142   692.88
9   Tl -0.892003    1.355970    1.374303  204.380000     156   577.00
10  Ga -1.282309   -0.719299   -0.521194   69.723000     136   302.91
12  Sn -1.283931    0.464447    0.686663  118.710000     145   505.21
13  Ge -1.151102   -0.159282    0.146471   72.630000     125  1211.40
14  Mg -0.843692   -0.319915   -0.124790   24.305000     145   923.00
15  Au -0.870214   -0.124026   -0.328712  196.966569     174  1337.73
16  Al -1.117972   -1.012658   -0.729136   26.981538     118   933.40
17  Pd -0.718155   -0.581004   -0.657751  106.420000     169  1825.00
18  Pt -0.650905   -0.507245   -0.628432  195.084000     177  2045.00
19  Cd -0.557417    0.719414    0.780941  112.414000     161   594.33
20  Rh -0.032545   -0.363279   -0.197038  102.905500     173  2239.00
  1. 重命名列
In [ ]:
df = df.rename(columns={'mass': 'atomic mass'})
print(df)
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0   Si -1.115722   -0.569736   -0.225225    28.085000     111  1687.00
1   Sb -1.522549    0.870210    1.027179   121.760000     133   904.10
2   Bi -1.352188    1.968962    1.815817   208.980400     143   544.67
3   Pb -1.160016    1.593083    1.631911   207.200000     154   600.80
4   In -1.033518    0.416942    0.519860   114.818000     156   429.91
6   Ag -0.527524    0.157998    0.028100   107.868200     165  1234.00
8   Zn -0.667779   -0.359509   -0.212413    65.380000     142   692.88
9   Tl -0.892003    1.355970    1.374303   204.380000     156   577.00
10  Ga -1.282309   -0.719299   -0.521194    69.723000     136   302.91
12  Sn -1.283931    0.464447    0.686663   118.710000     145   505.21
13  Ge -1.151102   -0.159282    0.146471    72.630000     125  1211.40
14  Mg -0.843692   -0.319915   -0.124790    24.305000     145   923.00
15  Au -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
16  Al -1.117972   -1.012658   -0.729136    26.981538     118   933.40
17  Pd -0.718155   -0.581004   -0.657751   106.420000     169  1825.00
18  Pt -0.650905   -0.507245   -0.628432   195.084000     177  2045.00
19  Cd -0.557417    0.719414    0.780941   112.414000     161   594.33
20  Rh -0.032545   -0.363279   -0.197038   102.905500     173  2239.00
  1. 设置索引
In [ ]:
df = df.set_index('Key')
print(df)
        ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
Key                                                                
Si  -1.115722   -0.569736   -0.225225    28.085000     111  1687.00
Sb  -1.522549    0.870210    1.027179   121.760000     133   904.10
Bi  -1.352188    1.968962    1.815817   208.980400     143   544.67
Pb  -1.160016    1.593083    1.631911   207.200000     154   600.80
In  -1.033518    0.416942    0.519860   114.818000     156   429.91
Ag  -0.527524    0.157998    0.028100   107.868200     165  1234.00
Zn  -0.667779   -0.359509   -0.212413    65.380000     142   692.88
Tl  -0.892003    1.355970    1.374303   204.380000     156   577.00
Ga  -1.282309   -0.719299   -0.521194    69.723000     136   302.91
Sn  -1.283931    0.464447    0.686663   118.710000     145   505.21
Ge  -1.151102   -0.159282    0.146471    72.630000     125  1211.40
Mg  -0.843692   -0.319915   -0.124790    24.305000     145   923.00
Au  -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
Al  -1.117972   -1.012658   -0.729136    26.981538     118   933.40
Pd  -0.718155   -0.581004   -0.657751   106.420000     169  1825.00
Pt  -0.650905   -0.507245   -0.628432   195.084000     177  2045.00
Cd  -0.557417    0.719414    0.780941   112.414000     161   594.33
Rh  -0.032545   -0.363279   -0.197038   102.905500     173  2239.00
  1. 重置索引
In [ ]:
df = df.reset_index()
print(df)
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0   Si -1.115722   -0.569736   -0.225225    28.085000     111  1687.00
1   Sb -1.522549    0.870210    1.027179   121.760000     133   904.10
2   Bi -1.352188    1.968962    1.815817   208.980400     143   544.67
3   Pb -1.160016    1.593083    1.631911   207.200000     154   600.80
4   In -1.033518    0.416942    0.519860   114.818000     156   429.91
5   Ag -0.527524    0.157998    0.028100   107.868200     165  1234.00
6   Zn -0.667779   -0.359509   -0.212413    65.380000     142   692.88
7   Tl -0.892003    1.355970    1.374303   204.380000     156   577.00
8   Ga -1.282309   -0.719299   -0.521194    69.723000     136   302.91
9   Sn -1.283931    0.464447    0.686663   118.710000     145   505.21
10  Ge -1.151102   -0.159282    0.146471    72.630000     125  1211.40
11  Mg -0.843692   -0.319915   -0.124790    24.305000     145   923.00
12  Au -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
13  Al -1.117972   -1.012658   -0.729136    26.981538     118   933.40
14  Pd -0.718155   -0.581004   -0.657751   106.420000     169  1825.00
15  Pt -0.650905   -0.507245   -0.628432   195.084000     177  2045.00
16  Cd -0.557417    0.719414    0.780941   112.414000     161   594.33
17  Rh -0.032545   -0.363279   -0.197038   102.905500     173  2239.00

3.2 行操作¶

  1. 数据行排序
In [ ]:
sorted_df = df.sort_values(by='radius')
print(sorted_df)
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0   Si -1.115722   -0.569736   -0.225225    28.085000     111  1687.00
13  Al -1.117972   -1.012658   -0.729136    26.981538     118   933.40
10  Ge -1.151102   -0.159282    0.146471    72.630000     125  1211.40
1   Sb -1.522549    0.870210    1.027179   121.760000     133   904.10
8   Ga -1.282309   -0.719299   -0.521194    69.723000     136   302.91
6   Zn -0.667779   -0.359509   -0.212413    65.380000     142   692.88
2   Bi -1.352188    1.968962    1.815817   208.980400     143   544.67
9   Sn -1.283931    0.464447    0.686663   118.710000     145   505.21
11  Mg -0.843692   -0.319915   -0.124790    24.305000     145   923.00
3   Pb -1.160016    1.593083    1.631911   207.200000     154   600.80
7   Tl -0.892003    1.355970    1.374303   204.380000     156   577.00
4   In -1.033518    0.416942    0.519860   114.818000     156   429.91
16  Cd -0.557417    0.719414    0.780941   112.414000     161   594.33
5   Ag -0.527524    0.157998    0.028100   107.868200     165  1234.00
14  Pd -0.718155   -0.581004   -0.657751   106.420000     169  1825.00
17  Rh -0.032545   -0.363279   -0.197038   102.905500     173  2239.00
12  Au -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
15  Pt -0.650905   -0.507245   -0.628432   195.084000     177  2045.00
  1. 数据行分组
In [ ]:
df.loc[['A' in strkey for strkey in df['Key']], 'Key'] = 'A+'
grouped_df = df.groupby('Key')
# print(grouped_df.mean())                # 计算分组后的平均值
print(grouped_df.get_group('A+'))
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
5   A+ -0.527524    0.157998    0.028100   107.868200     165  1234.00
12  A+ -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
13  A+ -1.117972   -1.012658   -0.729136    26.981538     118   933.40
In [ ]:
for name, group in grouped_df:
    print(f"Group: {name}")
    print(group)
    print("\n")
Group: A+
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
5   A+ -0.527524    0.157998    0.028100   107.868200     165  1234.00
12  A+ -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
13  A+ -1.117972   -1.012658   -0.729136    26.981538     118   933.40


Group: Bi
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
2  Bi -1.352188    1.968962    1.815817     208.9804     143   544.67


Group: Cd
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
16  Cd -0.557417    0.719414    0.780941      112.414     161   594.33


Group: Ga
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
8  Ga -1.282309   -0.719299   -0.521194       69.723     136   302.91


Group: Ge
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
10  Ge -1.151102   -0.159282    0.146471        72.63     125   1211.4


Group: In
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
4  In -1.033518    0.416942     0.51986      114.818     156   429.91


Group: Mg
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
11  Mg -0.843692   -0.319915    -0.12479       24.305     145    923.0


Group: Pb
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
3  Pb -1.160016    1.593083    1.631911        207.2     154    600.8


Group: Pd
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
14  Pd -0.718155   -0.581004   -0.657751       106.42     169   1825.0


Group: Pt
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
15  Pt -0.650905   -0.507245   -0.628432      195.084     177   2045.0


Group: Rh
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
17  Rh -0.032545   -0.363279   -0.197038     102.9055     173   2239.0


Group: Sb
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
1  Sb -1.522549     0.87021    1.027179       121.76     133    904.1


Group: Si
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0  Si -1.115722   -0.569736   -0.225225       28.085     111   1687.0


Group: Sn
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
9  Sn -1.283931    0.464447    0.686663       118.71     145   505.21


Group: Tl
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
7  Tl -0.892003     1.35597    1.374303       204.38     156    577.0


Group: Zn
  Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
6  Zn -0.667779   -0.359509   -0.212413        65.38     142   692.88


  1. 合并数据行
In [ ]:
data2 = {'Key': ['A', 'B', 'C', 'D'], 'ef100': [9, 9, 9, 9], 'ef_sub_100': [4, 4, 4, 4]}
df2 = pd.DataFrame(data2)
merged_df = pd.concat([df, df2])
print(merged_df)
   Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0   Si -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
1   Sb -1.522549    0.870210    1.027179   121.760000   133.0   904.10
2   Bi -1.352188    1.968962    1.815817   208.980400   143.0   544.67
3   Pb -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4   In -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5   A+ -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6   Zn -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7   Tl -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8   Ga -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9   Sn -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10  Ge -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11  Mg -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12  A+ -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13  A+ -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14  Pd -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15  Pt -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16  Cd -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17  Rh -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
0    A  9.000000    4.000000         NaN          NaN     NaN      NaN
1    B  9.000000    4.000000         NaN          NaN     NaN      NaN
2    C  9.000000    4.000000         NaN          NaN     NaN      NaN
3    D  9.000000    4.000000         NaN          NaN     NaN      NaN
  1. 插入数据行
In [ ]:
# 插入新行,需要全部补全数值
df.loc[1.5] = ['B', 25, 1, 1, 1, 1, 1]              # 序号是1.5
print(df)
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si  -1.115722   -0.569736   -0.225225    28.085000     111  1687.00
1.0   Sb  -1.522549    0.870210    1.027179   121.760000     133   904.10
2.0   Bi  -1.352188    1.968962    1.815817   208.980400     143   544.67
3.0   Pb  -1.160016    1.593083    1.631911   207.200000     154   600.80
4.0   In  -1.033518    0.416942    0.519860   114.818000     156   429.91
5.0   A+  -0.527524    0.157998    0.028100   107.868200     165  1234.00
6.0   Zn  -0.667779   -0.359509   -0.212413    65.380000     142   692.88
7.0   Tl  -0.892003    1.355970    1.374303   204.380000     156   577.00
8.0   Ga  -1.282309   -0.719299   -0.521194    69.723000     136   302.91
9.0   Sn  -1.283931    0.464447    0.686663   118.710000     145   505.21
10.0  Ge  -1.151102   -0.159282    0.146471    72.630000     125  1211.40
11.0  Mg  -0.843692   -0.319915   -0.124790    24.305000     145   923.00
12.0  A+  -0.870214   -0.124026   -0.328712   196.966569     174  1337.73
13.0  A+  -1.117972   -1.012658   -0.729136    26.981538     118   933.40
14.0  Pd  -0.718155   -0.581004   -0.657751   106.420000     169  1825.00
15.0  Pt  -0.650905   -0.507245   -0.628432   195.084000     177  2045.00
16.0  Cd  -0.557417    0.719414    0.780941   112.414000     161   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038   102.905500     173  2239.00
1.5    B  25.000000    1.000000    1.000000     1.000000       1     1.00
In [ ]:
# 插入新行,只指定部分列的值,其余列自动填充为 NaN
df.loc[2.5] = {'Key': 'C', 'ef100': 1, 'ef_sub_100': 1}
print(df.tail())
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
15.0  Pt  -0.650905   -0.507245   -0.628432     195.0840   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941     112.4140   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038     102.9055   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000       1.0000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN      NaN
  1. 删除数据行
In [ ]:
df = df.drop([1, 2])                # 删除第1,2行
print(df)
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si  -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
3.0   Pb  -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4.0   In  -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5.0   A+  -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6.0   Zn  -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7.0   Tl  -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8.0   Ga  -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9.0   Sn  -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10.0  Ge  -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11.0  Mg  -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12.0  A+  -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13.0  A+  -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14.0  Pd  -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0  Pt  -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000     1.000000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN      NaN

  1. 填补列缺失值
In [ ]:
df['melting'] = df['melting'].fillna(0)
print(df)
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si  -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
3.0   Pb  -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4.0   In  -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5.0   A+  -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6.0   Zn  -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7.0   Tl  -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8.0   Ga  -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9.0   Sn  -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10.0  Ge  -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11.0  Mg  -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12.0  A+  -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13.0  A+  -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14.0  Pd  -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0  Pt  -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000     1.000000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
  1. 去除重复值
In [ ]:
df.loc[3.5] = {'Key': 'C', 'ef100': 1, 'ef_sub_100': 1, 'melting': 0}
print(df.tail())
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
16.0  Cd  -0.557417    0.719414    0.780941     112.4140   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038     102.9055   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000       1.0000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
3.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
In [ ]:
df = df.drop_duplicates()
print(df.tail())
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
15.0  Pt  -0.650905   -0.507245   -0.628432     195.0840   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941     112.4140   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038     102.9055   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000       1.0000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
  1. 数据透视表

NBA数据样例 https://www.cnblogs.com/Yanjy-OnlyOne/p/11195621.html

In [ ]:
pivot_table = pd.pivot_table(df, values=['ef100','ef_sub_100'], index=[u'Key',u'melting'])
print(pivot_table)
                 ef100  ef_sub_100
Key melting                       
A+  933.40   -1.117972   -1.012658
    1234.00  -0.527524    0.157998
    1337.73  -0.870214   -0.124026
B   1.00     25.000000    1.000000
C   0.00      1.000000    1.000000
Cd  594.33   -0.557417    0.719414
Ga  302.91   -1.282309   -0.719299
Ge  1211.40  -1.151102   -0.159282
In  429.91   -1.033518    0.416942
Mg  923.00   -0.843692   -0.319915
Pb  600.80   -1.160016    1.593083
Pd  1825.00  -0.718155   -0.581004
Pt  2045.00  -0.650905   -0.507245
Rh  2239.00  -0.032545   -0.363279
Si  1687.00  -1.115722   -0.569736
Sn  505.21   -1.283931    0.464447
Tl  577.00   -0.892003    1.355970
Zn  692.88   -0.667779   -0.359509
  1. 数据转置
In [ ]:
transposed_df = df.T
print(transposed_df)
                 0.0       3.0       4.0       5.0       6.0       7.0   \
Key                Si        Pb        In        A+        Zn        Tl   
ef100       -1.115722 -1.160016 -1.033518 -0.527524 -0.667779 -0.892003   
ef_sub_100  -0.569736  1.593083  0.416942  0.157998 -0.359509   1.35597   
ef_sub_111  -0.225225  1.631911   0.51986    0.0281 -0.212413  1.374303   
atomic mass    28.085     207.2   114.818  107.8682     65.38    204.38   
radius          111.0     154.0     156.0     165.0     142.0     156.0   
melting        1687.0     600.8    429.91    1234.0    692.88     577.0   

                 8.0       9.0       10.0      11.0        12.0       13.0  \
Key                Ga        Sn        Ge        Mg          A+         A+   
ef100       -1.282309 -1.283931 -1.151102 -0.843692   -0.870214  -1.117972   
ef_sub_100  -0.719299  0.464447 -0.159282 -0.319915   -0.124026  -1.012658   
ef_sub_111  -0.521194  0.686663  0.146471  -0.12479   -0.328712  -0.729136   
atomic mass    69.723    118.71     72.63    24.305  196.966569  26.981538   
radius          136.0     145.0     125.0     145.0       174.0      118.0   
melting        302.91    505.21    1211.4     923.0     1337.73      933.4   

                 14.0      15.0      16.0      17.0  1.5  2.5   
Key                Pd        Pt        Cd        Rh     B    C  
ef100       -0.718155 -0.650905 -0.557417 -0.032545  25.0  1.0  
ef_sub_100  -0.581004 -0.507245  0.719414 -0.363279   1.0  1.0  
ef_sub_111  -0.657751 -0.628432  0.780941 -0.197038   1.0  NaN  
atomic mass    106.42   195.084   112.414  102.9055   1.0  NaN  
radius          169.0     177.0     161.0     173.0   1.0  NaN  
melting        1825.0    2045.0    594.33    2239.0   1.0  0.0  
  1. 数据合并(按行)
In [ ]:
df3 = pd.DataFrame({'Key': ['D'], 'melting': [300], 'ef100': [0]})
print(df3)
  Key  melting  ef100
0   D      300      0

In [ ]:
connected_df = pd.concat([df, df3])
print(connected_df)
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si  -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
3.0   Pb  -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4.0   In  -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5.0   A+  -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6.0   Zn  -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7.0   Tl  -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8.0   Ga  -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9.0   Sn  -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10.0  Ge  -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11.0  Mg  -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12.0  A+  -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13.0  A+  -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14.0  Pd  -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0  Pt  -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000     1.000000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
0.0    D   0.000000         NaN         NaN          NaN     NaN   300.00
  1. 数据行切片
In [ ]:
sliced_df = df[3:4]
print(sliced_df)
    Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
3.0  Pb -1.160016    1.593083    1.631911      207.200   154.0   600.80
4.0  In -1.033518    0.416942    0.519860      114.818   156.0   429.91

  1. 数据行迭代
In [ ]:
for index, row in df.iterrows():
    print(row)
Key                  Si
ef100         -1.115722
ef_sub_100    -0.569736
ef_sub_111    -0.225225
atomic mass      28.085
radius            111.0
melting          1687.0
Name: 0.0, dtype: object
Key                  Pb
ef100         -1.160016
ef_sub_100     1.593083
ef_sub_111     1.631911
atomic mass       207.2
radius            154.0
melting           600.8
Name: 3.0, dtype: object
Key                  In
ef100         -1.033518
ef_sub_100     0.416942
ef_sub_111      0.51986
atomic mass     114.818
radius            156.0
melting          429.91
Name: 4.0, dtype: object
Key                  A+
ef100         -0.527524
ef_sub_100     0.157998
ef_sub_111       0.0281
atomic mass    107.8682
radius            165.0
melting          1234.0
Name: 5.0, dtype: object
Key                  Zn
ef100         -0.667779
ef_sub_100    -0.359509
ef_sub_111    -0.212413
atomic mass       65.38
radius            142.0
melting          692.88
Name: 6.0, dtype: object
Key                  Tl
ef100         -0.892003
ef_sub_100      1.35597
ef_sub_111     1.374303
atomic mass      204.38
radius            156.0
melting           577.0
Name: 7.0, dtype: object
Key                  Ga
ef100         -1.282309
ef_sub_100    -0.719299
ef_sub_111    -0.521194
atomic mass      69.723
radius            136.0
melting          302.91
Name: 8.0, dtype: object
Key                  Sn
ef100         -1.283931
ef_sub_100     0.464447
ef_sub_111     0.686663
atomic mass      118.71
radius            145.0
melting          505.21
Name: 9.0, dtype: object
Key                  Ge
ef100         -1.151102
ef_sub_100    -0.159282
ef_sub_111     0.146471
atomic mass       72.63
radius            125.0
melting          1211.4
Name: 10.0, dtype: object
Key                  Mg
ef100         -0.843692
ef_sub_100    -0.319915
ef_sub_111     -0.12479
atomic mass      24.305
radius            145.0
melting           923.0
Name: 11.0, dtype: object
Key                    A+
ef100           -0.870214
ef_sub_100      -0.124026
ef_sub_111      -0.328712
atomic mass    196.966569
radius              174.0
melting           1337.73
Name: 12.0, dtype: object
Key                   A+
ef100          -1.117972
ef_sub_100     -1.012658
ef_sub_111     -0.729136
atomic mass    26.981538
radius             118.0
melting            933.4
Name: 13.0, dtype: object
Key                  Pd
ef100         -0.718155
ef_sub_100    -0.581004
ef_sub_111    -0.657751
atomic mass      106.42
radius            169.0
melting          1825.0
Name: 14.0, dtype: object
Key                  Pt
ef100         -0.650905
ef_sub_100    -0.507245
ef_sub_111    -0.628432
atomic mass     195.084
radius            177.0
melting          2045.0
Name: 15.0, dtype: object
Key                  Cd
ef100         -0.557417
ef_sub_100     0.719414
ef_sub_111     0.780941
atomic mass     112.414
radius            161.0
melting          594.33
Name: 16.0, dtype: object
Key                  Rh
ef100         -0.032545
ef_sub_100    -0.363279
ef_sub_111    -0.197038
atomic mass    102.9055
radius            173.0
melting          2239.0
Name: 17.0, dtype: object
Key               B
ef100          25.0
ef_sub_100      1.0
ef_sub_111      1.0
atomic mass     1.0
radius          1.0
melting         1.0
Name: 1.5, dtype: object
Key              C
ef100          1.0
ef_sub_100     1.0
ef_sub_111     NaN
atomic mass    NaN
radius         NaN
melting        0.0
Name: 2.5, dtype: object
  1. 数据过滤
In [ ]:
filtered_df = df[(df['melting'] > 1000) & (df['ef_sub_100'] < 0)]
print(filtered_df)
     Key     ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
10.0  Ge -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
12.0  A+ -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
14.0  Pd -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0  Pt -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
17.0  Rh -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00

  1. 数据替换
In [ ]:
df['Key'] = df['Key'].replace('A+', 'A')
print(df)
     Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0   Si  -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
3.0   Pb  -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4.0   In  -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5.0    A  -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6.0   Zn  -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7.0   Tl  -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8.0   Ga  -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9.0   Sn  -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10.0  Ge  -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11.0  Mg  -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12.0   A  -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13.0   A  -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14.0  Pd  -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0  Pt  -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16.0  Cd  -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17.0  Rh  -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
1.5    B  25.000000    1.000000    1.000000     1.000000     1.0     1.00
2.5    C   1.000000    1.000000         NaN          NaN     NaN     0.00
  1. 数据映射
In [ ]:
mapping = {'A': 'A++', 'B': 'B++'}
df['Key'] = df['Key'].map(mapping).fillna(df['Key'])
print(df)
      Key      ef100  ef_sub_100  ef_sub_111  atomic mass  radius  melting
0.0    Si  -1.115722   -0.569736   -0.225225    28.085000   111.0  1687.00
3.0    Pb  -1.160016    1.593083    1.631911   207.200000   154.0   600.80
4.0    In  -1.033518    0.416942    0.519860   114.818000   156.0   429.91
5.0   A++  -0.527524    0.157998    0.028100   107.868200   165.0  1234.00
6.0    Zn  -0.667779   -0.359509   -0.212413    65.380000   142.0   692.88
7.0    Tl  -0.892003    1.355970    1.374303   204.380000   156.0   577.00
8.0    Ga  -1.282309   -0.719299   -0.521194    69.723000   136.0   302.91
9.0    Sn  -1.283931    0.464447    0.686663   118.710000   145.0   505.21
10.0   Ge  -1.151102   -0.159282    0.146471    72.630000   125.0  1211.40
11.0   Mg  -0.843692   -0.319915   -0.124790    24.305000   145.0   923.00
12.0  A++  -0.870214   -0.124026   -0.328712   196.966569   174.0  1337.73
13.0  A++  -1.117972   -1.012658   -0.729136    26.981538   118.0   933.40
14.0   Pd  -0.718155   -0.581004   -0.657751   106.420000   169.0  1825.00
15.0   Pt  -0.650905   -0.507245   -0.628432   195.084000   177.0  2045.00
16.0   Cd  -0.557417    0.719414    0.780941   112.414000   161.0   594.33
17.0   Rh  -0.032545   -0.363279   -0.197038   102.905500   173.0  2239.00
1.5   B++  25.000000    1.000000    1.000000     1.000000     1.0     1.00
2.5     C   1.000000    1.000000         NaN          NaN     NaN     0.00