我的 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'}}
有什么方法可以聚合!
答案 0 :(得分:2)
让我们试试 stack
和 groupby
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'}}