如何将我的Pandas Dataframe 转换为1nf?(减少一列中唯一值的数量)

wfauudbj  于 2022-12-25  发布在  其他
关注(0)|答案(1)|浏览(117)

我有多个列,列中有多个值,用","分隔。
例如:restaurant_type列具有类似'Casual Dining'以及'Cafe, Casual Dining'的值。
由于存在87唯一值,因此在可视化时会出现问题。

k7fdbhmy

k7fdbhmy1#

https://www.pythonpool.com/python-code-to-convert-a-table-to-first-normal-form/

import pandas as pd
import numpy as np

df = pd.DataFrame({'Name': ['David', 'Glenn', 'Steve'], 'Subjects': [
    ['English', 'Math'], ['Math'], ['Science', 'English']]})

print(df)
lens = list(map(len, df['Subjects'].values))

res = pd.DataFrame({'Name': np.repeat(
    df['Name'], lens), 'Subject': np.concatenate(df['Subjects'].values)})

print(res)

相关问题