Polars では、CSV や Excel ファイルを読み込む際に、`infer_schema=False` を指定することで、全ての列を文字列型 (`polars.String`) として読み込むことができる。
この指定は、データ型の自動推論による予期しない変換を防ぎ、データの元の形式を保持したい場合に有用である。
```python
pl.read_csv("sample.csv")
```
```
shape: (3, 3)
┌─────┬────────┬───────┐
│ id ┆ name ┆ price │
│ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ i64 │
╞═════╪════════╪═══════╡
│ 1 ┆ apple ┆ 100 │
│ 2 ┆ banana ┆ 200 │
│ 3 ┆ cherry ┆ null │
└─────┴────────┴───────┘
```
```python
pl.read_csv("sample.csv", infer_schema=False)
```
```
shape: (3, 3)
┌─────┬────────┬───────┐
│ id ┆ name ┆ price │
│ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str │
╞═════╪════════╪═══════╡
│ 1 ┆ apple ┆ 100 │
│ 2 ┆ banana ┆ 200 │
│ 3 ┆ cherry ┆ null │
└─────┴────────┴───────┘
```
## 関連ノート
- **[応用]** [[Python のデータフレームにハッシュ差分列を追加する]]: ハッシュ計算で元の値を保ったまま使うために、本ノートの「全列を文字列で読む」を前処理として採用する
- **[派生]** [[BigQuery のダミーデータ記法は typed UNNEST を第一選択にする]]: 自動型推論を抑制する設計判断を、SQL インメモリリテラルの層で適用した類例