Ich möchte einen Python-Formatstring erstellen, der nur 2 Dezimalstellen ausgibt, wenn die Zahl kleiner als 10 ist oder nur 1 Ziffer. Bei größeren Zahlen ist mir die Genauigkeit der 2 Dezimalstellen egal. Kannst du mir dabei helfen?

Hier ist ein Beispielcode, der einige Beispieldaten erstellt:

```python
import pandas as pd

format_logic = '${:,.2f}'

pd.options.display.float_format = format_logic.format

df = pd.DataFrame([123.4567, 0.4678, 1.6789, 456.7890],
                  index=['foo','bar','baz','quux'],
                  columns=['cost'])
print(df)
```

Wie kann ich `format_logic` ändern, um nur 2 Dezimalstellen für kleine Zahlen anzuzeigen und sie für größere Zahlen zu ignorieren, bei denen ich die Genauigkeit der 2 Dezimalstellen nicht benötige?
Eine mögliche Möglichkeit, `format_logic` zu ändern, um die gewünschte Ausgabe zu erzielen, besteht darin, einen bedingten Ausdruck innerhalb des Formatstrings zu verwenden. Zum Beispiel:

```python
format_logic = '${:,.2f}' if x < 10 else '${:,.0f}'
```

Dies prüft, ob der Wert von x kleiner als 10 ist, und verwendet dann den Formatierer `:,.2f`, um zwei Dezimalstellen anzuzeigen. Andernfalls wird der Formatierer `:,.0f` verwendet, um keine Dezimalstellen anzuzeigen. Beachten Sie, dass Sie den Wert von x als Argument an den Formatstring übergeben müssen, wie folgt:

```python
pd.options.display.float_format = lambda x: format_logic.format(x)
```

Alternativ können Sie eine benutzerdefinierte Funktion definieren, die einen Wert annimmt und einen formatierten String basierend auf Ihrer Logik zurückgibt, und dann diese Funktion an die Option `float_format` übergeben. Zum Beispiel:

```python
def custom_format(x):
    if x < 10:
        return '${:,.2f}'.format(x)
    else:
        return '${:,.0f}'.format(x)

pd.options.display.float_format = custom_format
```

Auf diese Weise wird die Ausgabe Ihres Codes wie folgt aussehen:

```
       cost
foo  $123
bar   $0.47
baz   $1.68
quux $457
```