我需要动态创建一个Excel电子表格,如下所示:
_______________________________________________________
| Name | Start Date | Title | Companies | Sub-companies |
|-------------------------------------------------------|
| Jim | 01/01/2010 | CTO | Google | YouTube |
|-------------------------------------------------------|
| | | | | FitBit |
|-------------------------------------------------------|
| | | | Apple | NextVR |
|-------------------------------------------------------|
| | | | | Beats |
|-------------------------------------------------------|
| Tom | 12/12/2020 | CEO | Amazon | Audible |
|-------------------------------------------------------|
| | | | | Zappos |
|-------------------------------------------------------|
| | | | Samsung | Biologics |
|-------------------------------------------------------|
| | | | | Cheil |
|-------------------------------------------------------|
这是我到目前为止的代码:
import pandas as pd
df = pd.DataFrame({
"Name": ["Jim", "Tom"],
"Start Date": ["01/01/2010", "12/12/2020"],
"Companies": ["Google", "Apple", "Amazon", "Samsung"],
"Sub-companies": [
"YouTube", "FitBit", "NextVR", "Beats",
"Audible", "Zappos", "Biologics", "Cheil"
]
})
print(df)
df.to_excel("output.xlsx", sheet_name="Webtoons Comic Data")
这是行不通的,因为“所有数组的长度必须相同”,我该怎么做呢?我目前的计划是通过在每个列数组中添加空格来逐行创建。有没有更好的方法呢?我不需要帮助填充数组,只需要构造DF本身。谢谢你的帮助。
发布于 2021-04-03 02:12:20
如果你想插入你自己,好的缩进会很有帮助
import pandas as pd
import numpy as np
df = pd.DataFrame(
columns=[
'Name', 'Start Date', 'Title', 'Companies', 'Sub-companies',
],
data = np.array([[
'Jim', '01/01/2010', 'CTO', 'Google', 'YouTube',
], [
'', '', '', '', 'FitBit',
], [
'', '', '', 'Apple', 'NextVR',
]]),
)
发布于 2021-04-03 02:00:10
正如我在评论中提到的,我们可以尝试设置索引
df = pd.DataFrame({'Name':["Jim","Jim","Jim","Jim","Tom","Tom","Tom","Tom"],
"Companies": ["Google","Google", "Apple","Apple", "Amazon", "Amazon","Samsung","Samsung"],
"Sub-companies": [
"YouTube", "FitBit", "NextVR", "Beats",
"Audible", "Zappos", "Biologics", "Cheil"
]
})
df.set_index(['Name','Companies'])
Sub-companies
Name Companies
Jim Google YouTube
Google FitBit
Apple NextVR
Apple Beats
Tom Amazon Audible
Amazon Zappos
Samsung Biologics
Samsung Cheil
#df.set_index(['Name','Companies']).to_excel()
https://stackoverflow.com/questions/66927017
复制