python - 在空的 Pandas DataFrame 中插入单元格
问题描述
我需要将一些值存储在一个空的 Pandas 数据框中。类似的东西:
| col1 col2 col3
------------------------
row1 | v1 v2 v3
row2 | v4 v5 v6
row3 | v7 v8 v9
我从其他来源获取单元格ex: (row2, col3, v6)
,但我事先不知道我将拥有多少行和多少列。
我试图以这种方式填充我的 DataFrame,但它不起作用:
import pandas as pd
df = pd.DataFrame()
df["col1"] = ""
df["col2"] = ""
df["col3"] = ""
df["col1"].loc["row1"] = "v1"
df["col2"].loc["row2"] = "v4"
df["col3"].loc["row3"] = "v9"
# ...
当我想显示 DataFrame 时,
print(df)
它显示为一个空的 DataFrame。
Empty DataFrame
Columns: [col1, col2, col3]
Index: []
出于好奇,我尝试了
print(df["col1"])
我得到:
row1 v1
row2 v4
row3 v7
Name: col1, dtype: object
和
print(df.loc["row1"])
返回KeyError
异常。
好吧,我想我有一个索引问题,但我不知道如何解决它,而且我在第一次插入后无法使用df.set_index
,因为我有其他限制。
我也试过这个:
df = pd.DataFrame(columns=("some_name",))
df.set_index("some_name", inplace=True)
但它也失败了。
任何的想法 ?我想我只需要在开始插入数据之前设置一个空索引,但我不知道如何。
解决方案
这样,您可以使用pd.loc()方法添加值: import pandas as pd df = pd.DataFrame()
df["col1"] = ""
df["col2"] = ""
df["col3"] = ""
df.loc["row1", "col1"] = "v1"
df.loc["row2", "col2"] = "v4"
df.loc["row3", "col3"] = "v9"
产生以下输出:
推荐阅读
- sql-server - 将 varbinary 加密列中的日期转换回日期
- angular - 如何在 NFC 标签上书写?(离子)
- angular - 如何向密码表单字段添加必须至少为 4 个字符的条件,否则会出错
- kubernetes - 如何确定是否有任何 k8s 资源正在使用特定的 ConfigMap?
- if-statement - 在 Blazor Server 中,如何使用 @if 有条件地显示导航链接?
- python - Python3 - 将 bash 脚本的输出返回到变量
- javascript - 如何使输入的 UI Fabric 文本字段长度而不截断文本?
- matplotlib - matplotlib 交互式导航键盘快捷键如何工作?
- matlab - 有没有办法在 MATLAB App Designer UIAxes 中显示箱线图?
- pine-script - 如何将 pinescript 从 v2 转换为 v4?