gpt4 book ai didi

python - pandas:规范化 DataFrame

转载 作者:太空狗 更新时间:2023-10-29 21:37:52 24 4
gpt4 key购买 nike

我在扁平化文件中输入了数据。我想通过将这些数据拆分成表格来规范化这些数据。我可以用 pandas 巧妙地做到这一点吗 - 也就是说,通过将扁平化数据读入 DataFrame 实例,然后应用一些函数来获得生成的 DataFrame实例?

例子:

数据以 CSV 文件的形式在磁盘上提供给我,如下所示:

ItemId   ClientId   PriceQuoted  ItemDescription
1 1 10 scroll of Sneak
1 2 12 scroll of Sneak
1 3 13 scroll of Sneak
2 2 2500 scroll of Invisible
2 4 2200 scroll of Invisible

我想创建两个 DataFrame:

ItemId   ItemDescription
1 scroll of Sneak
2 scroll of Invisibile

ItemId   ClientId   PriceQuoted
1 1 10
1 2 12
1 3 13
2 2 2500
2 4 2200

如果 pandas 只对最简单的情况有一个很好的解决方案(规范化导致 2 个表具有多对一关系 - 就像上面的例子一样),这可能足以满足我当前的需求需要。不过,我将来可能需要更通用的解决方案。

最佳答案

In [30]: df = pandas.read_csv('foo1.csv', sep='[\s]{2,}')

In [30]: df
Out[30]:
ItemId ClientId PriceQuoted ItemDescription
0 1 1 10 scroll of Sneak
1 1 2 12 scroll of Sneak
2 1 3 13 scroll of Sneak
3 2 2 2500 scroll of Invisible
4 2 4 2200 scroll of Invisible

In [31]: df1 = df[['ItemId', 'ItemDescription']].drop_duplicates().set_index('ItemId')

In [32]: df1
Out[32]:
ItemDescription
ItemId
1 scroll of Sneak
2 scroll of Invisible

In [33]: df2 = df[['ItemId', 'ClientId', 'PriceQuoted']]

In [34]: df2
Out[34]:
ItemId ClientId PriceQuoted
0 1 1 10
1 1 2 12
2 1 3 13
3 2 2 2500
4 2 4 2200

关于python - pandas:规范化 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12140417/

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