gpt4 book ai didi

python - 如何替换 DataFrame (Python) 中字符串列表中的字符串?

转载 作者:行者123 更新时间:2023-12-02 05:56:47 24 4
gpt4 key购买 nike

我有一个数据框,其中包含两个单独列中的列表列表。

import pandas as pd
data = pd.DataFrame()
data["Website"] = [["google.com", "amazon.com"], ["google.com"], ["aol.com", "no website"]]
data["App"] = [["Ok Google", "Alexa"], ["Ok Google"], ["AOL App", "Generic Device"]]

Thats how the Dataframe looks like

我需要将第一列中的某些字符串(此处:“无网站”)替换为第二列中的相应字符串(此处:“通用设备”)。替换字符串在列表中与需要替换的字符串具有相同的索引。

到目前为止不起作用:我尝试了几种形式的 str.replace(x,y) 列表和数据帧,但没有任何效果。简单的替换(x,y)不起作用,因为我需要替换几个不同的字符串。我想我无法理解索引的事情。我已经在 google 和 stackoverflow 上搜索了两个小时,但还没有找到解决方案。

提前非常感谢!抱歉,我的英语不好或菜鸟错误,我仍在学习中。

-最大

最佳答案

定义替换函数并使用 apply 进行向量化

def replacements(websites, apps):
" Substitute items in list replace_items that's found in websites "
replace_items = ["no website", ] # can add to this list of keys
# that trigger replacement

for i, k in enumerate(websites):
# Check each item in website for replacement
if k in replace_items:
# This is an item to be replaced
websites[i] = apps[i] # replace with corresponding item in apps

return websites

# Create Dataframe
websites = [["google.com", "amazon.com"], ["google.com"], ["aol.com", "no website"]]
app = [["Ok Google", "Alexa"], ["Ok Google"], ["AOL App", "Generic Device"]]
data = list(zip(websites, app))
df = pd.DataFrame(data, columns = ['Websites', 'App'])

# Perform replacement
df['Websites'] = df.apply(lambda row: replacements(row['Websites'], row['App']), axis=1)
print(df)

输出

                   Websites                        App
0 [google.com, amazon.com] [Ok Google, Alexa]
1 [google.com] [Ok Google]
2 [aol.com, Generic Device] [AOL App, Generic Device]

关于python - 如何替换 DataFrame (Python) 中字符串列表中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483078/

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