python - 如何创建具有不同行长的多列的新 python DataFrame?
问题描述
我正在组织一个新的数据框,以便轻松地将数据插入到 Bokeh 可视化代码片段中。我认为我的问题是由于行长不同,但我不确定。
下面,我按国家名称的字母顺序组织了数据集,并创建了各个国家的字母列表。new_data.tail()虽然津巴布韦排在最后,但有 80336 行,因此进行了排序。
df_ind_data = pd.DataFrame(ind_data)
new_data = df_ind_data.sort_values(by=['country'])
new_data = new_data.reset_index(drop=True)
country_list = list(ind_data['country'])
new_country_set = sorted(set(country_list))
我的目标是创建一个新的 DataFrame,其中包含 76 个列(国家名称),每个国家列下方的行中都有特定的“信任”数据。
df = pd.DataFrame()
for country in new_country_set:
pink = new_data.loc[(new_data['country'] == country)]
df[country] = pink.trust
如您所见,第一列之后的其余列的数据不包含在内。我相信这是因为每个国家的“信任”数据行数不同。虽然第一列有 1000 行,但有些列的数据点多达 2500 个,少则 500 个。
我尝试了几种不同的方法来指定“df”中的行数,但无济于事。
我拥有的可视化代码片段对模板数据使用了相同的精确数据结构,这就是我尝试将其放入数据框中的原因。另外,我做不到,所以我想知道该怎么做。
是的,我可以把它放在字典里,但我想把它放在数据框中。
解决方案
添加新列时应使用combine_first以便扩展数据框索引。代替
df[country] = pink.trust
你应该使用
df = pink.trust.combine_first(df)
这可确保您的索引始终是所有添加列的联合。
推荐阅读
- javascript - push button value to firebase with Jquery
- python - JupyterLab 中的 Folium 库问题 - 受信任的笔记本不显示地图
- python-3.x - 如何在旧的 centos 共享 Web 主机(无 root)上安装 Python 3.7?
- kubernetes - 如何在 kubernetes externalsecret CRD 中有多个 vault 挂载点
- python - 即使需要的模板在 /templates 中,Flask 也会抛出 TemplateNotFound
- c - CS50 Speller 可以正确处理最基本的单词
- python - 仅解析来自 Kafka Tool 的新数据
- javascript - 获取字符串内的内容类型
- go - 为什么会出现空字节?即使在“消毒”流之后
- amazon-web-services - 与远程主机关闭的 ec2 实例的连接