Python 3.x 将熊猫系列列表转换为单个熊猫数据帧
我正在数据集上使用statsmodels.api。我有一份熊猫系列的清单。熊猫系列有键值对。键是列的名称,值包含数据。但是,我有一个序列列表,其中的键列名是重复的。我想将panda系列列表中的所有值保存到一个数据框中,其中列名是panda系列的键。列表中的所有系列都具有相同的键。我想将它们保存为单个数据帧,以便将数据帧导出为CSV。知道如何将键保存为df的列名,然后让值填充其余信息吗 列表中的每个系列都返回如下内容:Python 3.x 将熊猫系列列表转换为单个熊猫数据帧,python-3.x,pandas,dataframe,statsmodels,Python 3.x,Pandas,Dataframe,Statsmodels,我正在数据集上使用statsmodels.api。我有一份熊猫系列的清单。熊猫系列有键值对。键是列的名称,值包含数据。但是,我有一个序列列表,其中的键列名是重复的。我想将panda系列列表中的所有值保存到一个数据框中,其中列名是panda系列的键。列表中的所有系列都具有相同的键。我想将它们保存为单个数据帧,以便将数据帧导出为CSV。知道如何将键保存为df的列名,然后让值填充其余信息吗 列表中的每个系列都返回如下内容: index 0 of the list: <class 'pandas.
index 0 of the list: <class 'pandas.core.series.Series'>
height 23
weight 10
size 45
amount 9
index 1 of the list: <class 'pandas.core.series.Series'>
height 11
weight 99
size 25
amount 410
index 2 of the list: <class 'pandas.core.series.Series'>
height 3
weight 0
size 115
amount 92
这不是最有效的方法,但它确实起到了关键作用:
import pandas as pd
series_list =[ pd.Series({ 'height': 23,
'weight': 10,
'size': 45,
'amount': 9
}),
pd.Series({ 'height': 11,
'weight': 99,
'size': 25,
'amount': 410
}),
pd.Series({ 'height': 3,
'weight': 0,
'size': 115,
'amount': 92
})
]
pd.DataFrame( [series.to_dict() for series in series_list] )
创建新数据帧时,pandas将接受数据参数的系列列表。序列的索引将成为数据帧的列名。是否尝试在序列列表中调用pd.DataFrame?这应该行得通
import pandas as pd
series_list = [
pd.Series({
'height': 23,
'weight': 10,
'size': 45,
'amount': 9
}),
pd.Series({
'height': 11,
'weight': 99,
'size': 25,
'amount': 410
}),
pd.Series({
'height': 3,
'weight': 0,
'size': 115,
'amount': 92
})
]
df = pd.DataFrame(series_list)
print(df)
df.to_csv('path/to/save/foo.csv')
输出:
height weight size amount
0 23 10 45 9
1 11 99 25 410
2 3 0 115 92
与pd.concatl一起检查这不会解决创建的重复密钥。我只需要一组带有值列表的键,就像excel文件的外观一样。我的解决方案生成唯一的标记。DataFrame没有键,但类比是一个索引。它也与我之后发布的2相同,但被接受的是一般性的,而不是回答你的具体情况,我想这很酷
import pandas as pd
series_list = [
pd.Series({
'height': 23,
'weight': 10,
'size': 45,
'amount': 9
}),
pd.Series({
'height': 11,
'weight': 99,
'size': 25,
'amount': 410
}),
pd.Series({
'height': 3,
'weight': 0,
'size': 115,
'amount': 92
})
]
df = pd.DataFrame(series_list)
print(df)
df.to_csv('path/to/save/foo.csv')
height weight size amount
0 23 10 45 9
1 11 99 25 410
2 3 0 115 92