一、Series和DataFrame

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

Series 由索引(index)和列组成。

pandas.Series( data, index, dtype, name, copy)
  • data:一组数据(ndarray 类型)。

  • index:数据索引标签,如果不指定,默认从 0 开始。

  • dtype:数据类型,默认会自己判断。

  • name:设置名称。

  • copy:拷贝数据,默认为 False。

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。

pandas.DataFrame( data, index, columns, dtype, copy)

  • data:一组数据(ndarray、series, map, lists, dict 等类型)。

  • index:索引值,或者可以称为行标签。

  • columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。

  • dtype:数据类型。

  • copy:拷贝数据,默认为 False。

 二、append方式

代码:

import numpy
import pandas
actions = ['left', 'right']
table = pandas.DataFrame(columns=actions, dtype=numpy.float64)
for i in range(5):
    line_table = pandas.Series(
            [0.5] * len(actions),
            name=i,
            index=actions
        )
    table = table.append(line_table)

print(table)

 打印结果:

   left  right
0   0.5    0.5
1   0.5    0.5
2   0.5    0.5
3   0.5    0.5

 但是使用append会报一些恶心的Warning,意思是append即将被弃用,推荐使用pandas.concat

FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  table = table.append(line_table)

三、pandas.concat

import numpy
import pandas
actions = ['left', 'right']
table = pandas.DataFrame(columns=actions, dtype=numpy.float64)
for i in range(5):
    line_table = pandas.Series(
            [0.5] * len(actions),
            name=i,
            index=actions
        )
    # 若将Series作为一行插入DataFrame,先转换成DataFrame,再进行转置
    line_table2 = line_table.to_frame()
    # print(line_table2.T)
    table = pandas.concat([table, line_table2.T])

print(table)
若将Series作为一行插入DataFrame,先转换成DataFrame,再进行转置,可以看出还不如append方便。
简单写法:
import numpy
import pandas
actions = ['left', 'right']
table = pandas.DataFrame(columns=actions, dtype=numpy.float64)
for i in range(5):

    table = pandas.concat([table, line_table = pandas.Series(
            [0.5] * len(actions),
            name=i,
            index=actions
        ).to_frame().T])

print(table)

        

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐