python dataframe rename_重命名dask datafram中的列

这篇博客介绍了如何在Dask DataFrame中正确地重命名列。作者首先展示了尝试直接使用字典重命名列时遇到的问题,然后通过创建虚拟数据,将字典转换为Pandas DataFrame,进一步生成Dask Bag并转化为Dask DataFrame。最后,使用一个特定的重命名字典成功地重命名了列,并强调了Dask DataFrame的rename方法不支持inplace操作。
摘要由CSDN通过智能技术生成

我无法让这行代码正常工作(因为我将dictionary作为基本Python字典传递,这不是正确的输入)ddf = dd.DataFrame(dictionary, divisions=[2], meta=pd.DataFrame(dictionary,

index=list(range(2))), name='ddf')

print(ddf.compute())

() # this is the output of ddf.compute(); clearly something is not right

因此,我必须创建一些虚拟数据,并在创建dask dataframe的方法中使用这些数据。在

在字典中生成虚拟数据

^{pr2}$

从字典中创建Dask dataframe从这意味着您必须首先使用pandas将字典转换为pandas DataFrame,然后使用^{}获取创建dask包所需的序列(按行排列的字典列表)

下面是我如何创建所需的序列d = pd.DataFrame(d, index=list(range(2))).to_dict('records')

print(d)

[{0: 388,

1: 387,

2: 386,

3: 385,

5: 384,

'2012-06-13': 389,

'2012-06-14': 389},

{0: 388,

1: 387,

2: 386,

3: 385,

5: 384,

'2012-06-13': 389,

'2012-06-14': 389}]

现在我使用字典列表创建一个dask bagdask_bag = db.from_sequence(d, npartitions=2)

print(dask_bag)

dask.bag

将dask包转换为dask dataframedf = dask_bag.to_dataframe()

重命名dask中的列dataframecols = {0:'Datetime',1:'col1',2:'col2',3:'col3',5:'col5'}

df = df.rename(columns=cols)

print(df)

Dask DataFrame Structure:

Datetime col1 col2 col3 col5 2012-06-13 2012-06-14

npartitions=2

int64 int64 int64 int64 int64 int64 int64

... ... ... ... ... ... ...

... ... ... ... ... ... ...

Dask Name: rename, 6 tasks

计算daskdataframe(这次不会得到()的输出!)print(ddf.compute())

Datetime col1 col2 col3 col5 2012-06-13 2012-06-14

0 388 387 386 385 384 389 389

0 388 387 386 385 384 389 389

注意事项:同样来自.rename文档:inplace不受支持。在

我认为您的重命名字典包含字符串'0','1',等等,用于列名称的整数。对于您的数据,字典应该是整数0,1,等等

根据^{} docs,我使用了基于1-1重命名字典的方法,未包含在重命名dict中的列名将保持不变

这意味着您不需要传入不需要重命名的列名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值