2015-09-02 55 views
2

来排我谨代表在大熊猫数据帧一排的格式化字符串引用的列。我发现,最好的方法是将行转换为一个字典,然后的String.Format()应用的String.Format()的熊猫数据帧

假设pd.DataFramedf与列的样品“和“日期”:

r = df.loc[0] 
print("{specimen}_{date}".format(**r.to_dict())) 

可以使用申请使用列数据格式字符串。

这似乎不是很有效。是否有必须有一个更好的方式来做到这一点大熊猫的情况下直接转换为一个字典,同时保持明确命名的列灵活格式字符串?

更新:

的最终目的是生成刻度标记的matplotlib阴谋。使用下面的答案:

plot.set_yticklabels(["{specimen}_{date}".format(**r) for i,r in df.iterrows()]) 

回答

5

您可以使用该行本身。它是一个Series,它支持字典式访问项目:

>>> d 
    A  B  C 
0 1 This One 
1 2 is Two 
2 3 crud Three 
>>> "{A} then {B} and also {C}".format(**d.iloc[0]) 
'1 then This and also One'