0%

Python创建DataFrame

创建 DataFrame 的几种方法。

1
2
class pandas.DataFrame(data=None, index: Optional[Collection] = None, columns: Optional[Collection] = None,
dtype: Union[str, numpy.dtype, ExtensionDtype, None] = None, copy: bool = False)

data 参数可以是:ndarray (structured or homogeneous), Iterable, dict, or DataFrame.
Dict can contain Series, arrays, constants, or list-like objects.

由数组/list组成的字典创建 DataFrame

1
2
3
4
5
6
7
8
9
import pandas as pd

d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(d)
df

col1 col2
0 1 3
1 2 4

看看创建的 DataFrame 元素的类型。

1
2
3
4
5
df.dtypes

col1 int64
col2 int64
dtype: object

如果要修改类型

1
2
3
4
5
6
7
import numpy as np
df2 = pd.DataFrame(d, dtype=np.int8)
df2.dtypes

col1 int8
col2 int8
dtype: object

由 Series 组成的字典创建 DataFrame

1
2
3
4
5
6
7
df3 = pd.DataFrame({'col1': pd.Series([1, 2]), 'col2': pd.Series([3, 4])})
df3


col1 col2
0 1 3
1 2 4

由字典组成的列表创建 DataFrame

1
2
3
4
5
6
7
df4 = pd.DataFrame([{'col1': 1, 'col2': 3}, {'col1': 2, 'col2': 4}])
df4


col1 col2
0 1 3
1 2 4

由字典组成的字典创建 DataFrame

column 为父字典的 key,index 为子字典的 key。

1
2
3
4
5
6
7
df4 = pd.DataFrame({'col1': {'idx1': 1, 'idx2': 2}, 'col2': {'idx1': 3, 'idx2': 4}})
df4


col1 col2
idx1 1 3
idx2 2 4

由二维数组创建 DataFrame

1
2
3
4
5
6
7
df5 = pd.DataFrame([[1, 3], [2, 4]])
df5


0 1
0 1 3
1 2 4

当然,也可以自定义 index 和 column

1
2
3
4
5
6
df6 = pd.DataFrame([[1, 3], [2, 4]], index=['a', 'b'], columns=['c1', 'c2'])
df6

c1 c2
a 1 3
b 2 4