pandas 数据框中的 f 字符串格式

f-string formatting in pandas dataframe

假设 'members.xlsx' 包括与成员数据相对应的列,例如 'Country'、'Name'、'Job'、'Age'、'Hobby'、'Height'、'Weight' 等。我能够弄清楚如何使用 pandas.[= 来提取县为美国的成员的 'Name' 列,如下所示13=]

import pandas as pd
df=pd.read_excel('f:/temporary/members.xlsx') 
df1=df.loc[df['Country']=='US', ['Name']]
df1.to_excel('f:/temporary/US_Names.xlsx')

现在,我还想提取其他国家(例如 'Greece')成员的其他列(例如 'Job'、'Age' 和 'Hobby') , 'India').我想象的是使用与此类似的 f-string 将 'US' 和 'Name' 替换为其他字符串(我知道 'df1=' 也应该更改但让我稍后处理...... .).

for a in ['US','Greece','India']:
    for b in ['Name','Job','Age','Hobby']:
        df1=df.loc.[df['Country']=={a}, [{b}]]

但是在 'df1=df.loc.[df['Country']=={a}, [{b}]]' 中,我不知道 'f' 应该在哪里放置用于 f 字符串格式化。即使不是 f 字符串格式,任何方法都可以使用。提前致谢。

环境:windows10 64 位,python3.10.4,pandas1.4.1

使用:

for a in ['US','Greece','India']:
    for b in ['Name','Job','Age','Hobby']:
        df1=df.loc[df['Country']==a, b]

如果不需要将不同值的国家/地区的df分开,只需使用:

for a in ['US','Greece','India']:
   df1=df.loc[df['Country']==a, ['Name','Job','Age','Hobby']]

示范:

df=pd.DataFrame({'Name':['ali', 'reza'], 'Country':['Ir', 'Gr']})
a='Ir'
b='Name'
df.loc[df['Country']==a, b]

输出:

0    ali
Name: Name, dtype: object