Когда я использую f-строку с модификаторами формата в выражении, используя pandas Series
- я получаю TypeError
. Однако то же строковое выражение прекрасно работает с обычными данными. Можно ли вообще сделать это в pandas?
работает с обычными данными:
episode = 42
frame = 4242
f"e{episode:03}_f{frame:06}.jpg"
> 'e042_f004242.jpg'
не работает с pandas.Series
:
df['filename'] = f"e{df.episode:03}_f{df.frame:05}_i{df.item:05}.jpg"
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-84-73001803277d> in <module>
----> 1 df['filename'] = f"e{df.episode:03}_f{df.frame:05}_i{df.item:05}.jpg"
TypeError: unsupported format string passed to Series.__format__
Ошибка типа показывает, когда я передаю модификаторы формата в f-строку. Любой вид, в том числе {df.area:.2f}
. Однако без модификаторов формата я не получаю ошибки, но получаю что-то бесполезное, например e0 215\n1 1\n2 1\n3
У меня есть обходные пути, но я хотел бы использовать f-строки, так как они аккуратные.
pd.__version__
> '0.25.3'
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 84604 entries, 0 to 84603
Data columns (total 5 columns):
episode 84604 non-null int32
frame 84604 non-null int64
item 84604 non-null int64
img_size 84604 non-null float64
bounds 84604 non-null object
dtypes: float64(1), int32(1), int64(2), object(1)
memory usage: 2.9+ MB