gpt4 book ai didi

python - 使用 Pandas DataFrame 将列值列表转换为多行

转载 作者:太空宇宙 更新时间:2023-11-04 04:32:44 25 4
gpt4 key购买 nike

CSV 文件:(sample1.csv)

Location_City, Location_State, Name, hobbies
Los Angeles, CA, John, "['Music', 'Running']"
Texas, TX, Jack, "['Swimming', 'Trekking']"

我想将 CSV 的爱好列转换为以下输出

Location_City, Location_State, Name, hobbies
Los Angeles, CA, John, Music
Los Angeles, CA, John, Running
Texas, TX, Jack, Swimming
Texas, TX, Jack, Trekking

我已经将 csv 读入 dataframe 但我不知道如何转换它?

 data = pd.read_csv("sample1.csv") 
df=pd.DataFrame(data)
df

最佳答案

我们可以使用 pandas.DataFrame.explode 函数来解决这个问题,该函数在 0.25.0 版本中引入,如果您有相同或更高的版本,则可以使用以下代码。
爆炸功能引用:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html

import pandas as pd
import ast

data = {
'Location_City': ['Los Angeles','Texas'],
'Location_State': ['CA','TX'],
'Name': ['John','Jack'],
'hobbies': ["['Music', 'Running']", "['Swimming', 'Trekking']"]
}
df = pd.DataFrame(data)

# Converting a string representation of a list into an actual list object

list_eval = lambda x: ast.literal_eval(x)
df['hobbies'] = df['hobbies'].apply(list_eval)

# Exploding the list
df = df.explode('hobbies')

print(df)

Location_City Location_State Name hobbies
0 Los Angeles CA John Music
0 Los Angeles CA John Running
1 Texas TX Jack Swimming
1 Texas TX Jack Trekking

关于python - 使用 Pandas DataFrame 将列值列表转换为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386793/

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