假设我们有一个像这样的数据框:
data = pd.DataFrame({'num': [1,2,3],
'tags': [['toto','tata','titi'],
['one','two','three'],
['he','she','us']]})
数据
num tags
0 1 [toto, tata, titi]
1 2 [one, two, three]
2 3 [he, she, us]
我不明白为什么 data.tags.apply(pd.Series) 可以将 data.tags 扩展为自己的数据框
data.tags.apply(pd.Series)
0 1 2
0 toto tata titi
1 one two three
2 he she us
而DataFrame不能!
data.tags.apply(pd.DataFrame)
0 0
0 toto
1 tata
2 titi
1 0
0 one
1 two
2 three
2 0
0 he
1 she
2 us
Name: tags, dtype: object
它是如何工作的?
答案 0 :(得分:0)
在这种情况下,您可以将 document.getElementById('search').addEventListener(
'submit',
async e => {
e.preventDefault();
const searchResult = await getDetails();
// Do something to show the results, populate #results
const resultsElement = document.getElementById('results');
resultsElement.innerText = JSON.stringify(searchResult);
});
视为按行遍历 apply()
列。因此,应用 tags
将使每个列表成为“水平”系列。然后,由于您有这些“水平”系列的“垂直”列,因此您只剩下一个数据框。相反,应用 pd.Series
将使每个列表成为“垂直”数据帧,因此“垂直”数据帧的“垂直”列将为您提供一系列数据帧。
希望从“水平”和“垂直”的角度考虑它有助于对正在发生的事情的直觉有所帮助。