猿问

在空的 Pandas DataFrame 中插入单元格

我需要在一个空的 Pandas Dataframe 中存储一些值。类似的东西:


      | 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)

但它也失败了。


任何的想法 ?我想我只需要在开始插入数据之前设置一个空索引,但我不知道如何。


qq_花开花谢_0
浏览 285回答 1
1回答

倚天杖

这样你就可以使用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"产生以下输出:
随时随地看视频慕课网APP

相关分类

Python
我要回答