来自熊猫数据框的聚合字典

时间:2021-02-16 15:25:43

标签: pandas

我的 Pandas df 在下面。我希望将其转换为聚合键值对。以下是我取得的成就以及我的不足之处。

test("SearchBar value is read", () => {
  const handleSearchRequest = jest.fn();
  render(<SearchBar searchInputValue="Hello World"/>);
  
  const searchInput = screen.getByPlaceholderText("Search") as HTMLInputElement | null;

  expect(searchInput?.value).toBe("Hello World");
});

我的预期输出是:

import pandas as pd
import io

data = """
Name   factory1   factory2   factory3
Philips  China      US
Facebook  US
Taobao    China    Taiwan      Australia
"""

df = pd.read_table(io.StringIO(data), delim_whitespace=True)

df.set_index('Name').to_dict('index')

{'Philips': {'factory1': 'China', 'factory2': 'US', 'factory3': nan},
 'Facebook': {'factory1': 'US', 'factory2': nan, 'factory3': nan},
 'Taobao': {'factory1': 'China', 'factory2': 'Taiwan', 'factory3': 'Australia'}}

有什么方法可以聚合!

1 个答案:

答案 0 :(得分:2)

让我们试试 stackgroupby to_dict

out = df.set_index('Name').stack().groupby(level=0).agg(set).to_dict()
Out[109]: 
{'Facebook': {'US'},
 'Philips': {'China', 'US'},
 'Taobao': {'Australia', 'China', 'Taiwan'}}