python复制dataframe_Python Pandas复制和修改datafram中的一些行

我觉得在熊猫身上没有什么特别好的方法。

每当一个DataFrame包含一列列表,并且您想进行某种需要在列表上迭代的计算,您就必须为列中的每个项(即list)调用一次Python函数。这会影响性能,因为这里无法应用熊猫的快速矢量化操作。这个故事的寓意是尽可能避免将列表放入数据帧中。在

(当然,在您的案例中,您似乎希望在特定的

另一个应用程序的格式。如果这需要数据帧中的列表,那么

它。)

正如您所提到的,您可以迭代这些行。您可以使用iterrows或itertuples。我将使用itertuples,因为它往往更快:import itertools as IT

import numpy as np

import pandas as pd

Rs = ['R{}'.format(i) for i in range(1,251)]

Cs = ['C1', 'C2']

df = pd.DataFrame({'Names': [Rs, Cs], 'Count': ['n',0],

'PartNr':['1234-5678','1234-6789']})

def chunks(seq, n):

# http://stackoverflow.com/a/312464/190597 (Ned Batchelder)

""" Yield successive n-sized chunks from seq."""

for i in range(0, len(seq), n):

yield seq[i:i + n]

result = []

for row in df.itertuples():

result.append(pd.DataFrame({'Names': list(chunks(row.Names, 100)),

'Count':row.Count,

'PartNr':row.PartNr}))

result = pd.concat(result, axis=0, ignore_index=True)

print(result)

收益率

^{pr2}$

在itertuplesfor-loop内,为每一行构造一个新的数据帧。

数据帧被收集到一个名为result的列表中。在for-loop之后

完成后,数据帧列表被连接到单个数据帧中。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值