Pandas将Series作为一行插入DataFrame

一、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)

        

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值