我想在一个pandas DataFrame中用一个引用列的格式化字符串表示一行 . 我找到的最好的方法是将行转换为dict然后string.format()
假设 pd.DataFrame
df
列'specimen'和'date':
r = df.loc[0]
print("{specimen}_{date}".format(**r.to_dict()))
可用于使用列数据应用格式字符串 .
这看起来效率不高 . 是否必须有更好的方法在pandas中直接执行此操作而不转换为dict,同时保持格式化字符串中显式命名列的灵活性?
更新:
最终目的是为matplotlib图生成刻度标签 . 使用以下答案:
plot.set_yticklabels(["{specimen}_{date}".format(**r) for i,r in df.iterrows()])
1 回答
你可以只使用行本身 . 它是
Series
,它支持对项目的类似dict的访问: