我有一个数据框。
df = pd.DataFrame({'a':[1,1,2,2,2], 'b':['x','y','u','w','v']})
它应基于为列b
传递的值来选择列a
的值。
假设我要为列b
中的值2
选择列a
的所有值,并产生以下字符串
There are 3 values for value 2.
1. u
2. w
3. v
我正在使用for
循环进行操作,如下所示:
x = df[df['a']==2]['b'].values
result = "There are {} values for 2.\n".format(len(x))
z = ""
for i, val in enumerate(x):
temp = "{}. {}\n".format(i+1, val)
z += temp
print(result+z)
以上解决方案有效,但我正在寻找更有效的解决方案。
上下文:我正在创建一个聊天机器人响应。因此,尝试减少响应时间
欢迎提出任何建议。
答案 0 :(得分:2)
您可以使用to_string
x = df.loc[df.a == 2, 'b']
print('There are {} values for value 2.\n'.format(len(x)))
print(x.reset_index(drop = True).to_string())
There are 3 values for value 2.
0 u
1 w
2 v
答案 1 :(得分:1)
另一种溶胶:
const MdFetch = async (name) => {
const res = await fetch(
`https://api.rss2json.com/v1/api.json?rss_url=https://medium.com/feed/${name}`
);
return await res.json();
};