gpt4 book ai didi

python - 无法将 Pandas 数据框中的列转换为整数数据类型

转载 作者:行者123 更新时间:2023-11-28 21:51:02 26 4
gpt4 key购买 nike

我有这段代码可以通过从现有列中提取信息来操纵数据集以创建新列。为了使用 pd.merge 函数将数据与另一个数据集正确匹配,我想将“Channel ID”列转换为整数。尽管当前使用 .astype(int),结果数据类型显示为 float64,使用 .info() 查看框架

def cost(received_frame):
received_frame.columns = ['Campaign', 'Ad Spend']
campaigns = received_frame['Campaign']
ID = []
for c in campaigns:
blocks = re.split('_', c)
for block in blocks[1:]:
if len(block) == 6 and block.isdigit():
ID.append(block)
ID = pd.Series(ID).str.replace("'","")
ID = pd.DataFrame(ID)
both = [ID,received_frame]
frame = pd.concat(both,axis=1)
frame.columns = ['Channel ID', 'Campaign', 'Ad Spend']
frame['Channel ID'] = frame['Channel ID'].dropna().astype(int)
return frame

最佳答案

当你写的时候

frame['Channel ID'].dropna().astype(int)

您正在返回一个索引可能更少的系列,因为您正在删除 NA。

然后,当您将其分配为

frame['Channel ID'] = frame['Channel ID'].dropna().astype(int)

它与现有值(根据索引)执行某种合并,这些值是 float ,因此它也必须转换这些值。

您应该根据您的问题用其他东西替换它 (fillna?)。

关于python - 无法将 Pandas 数据框中的列转换为整数数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com