从熊猫列中获取字符串值

Posted

技术标签:

【中文标题】从熊猫列中获取字符串值【英文标题】:Getting a string value from a pandas column 【发布时间】:2021-07-16 03:59:35 【问题描述】:

我有 Pandas 数据框,其中包含一个名为 PLZ 的可悲列和一个索引。我想遍历整个列并仅提取 PLZ 的值,它是一个字符串。结果应该看起来像“50492”,因为 PLZ 是德语的邮政编码。

数据框的构造:

Daten=pd.read_csv("Daten.csv",sep=",",decimal=".",header=0,
               names=["PLZ", "Bundesland","Kreis",])

distance =Daten[["PLZ"]]

输出:

我当前的代码如下所示:

distance =Daten[["PLZ"]]

for row in tqdm(distance.itertuples()):
     
     distance2 = pd.concat(calc_dist("50674", column))

所需的输出应该是列的“58439”之类的值。

问题是:我得到了 calc_dist 行:'numpy.float64' 对象不可迭代 - 显然我不能使用列来检索我的值。但我也不能使用 .values1 属性,因为它会引发同样的问题。我不能使用 iloc 因为它不适用于字符串。 Loc 不起作用,因为它最终依赖于 .values[0] 。即使没有循环的方法也不起作用,因为我无法检索单元格的值。

带有 loc 的示例的错误消息:

【问题讨论】:

请添加一个具有预期输出的源数据框。您也可以包含生成数据框的代码 嗨,我不知道源数据框的确切含义,但我添加了创建和屏幕截图,以及整个错误消息。亲切的问候! 不是machine-learning 问题,请不要向无关标签发送垃圾邮件(已删除)。 【参考方案1】:

我把代码改成:

distance =Daten[["PLZ"]]


for i in tqdm(range(len(distance))):
     a=distance.loc[i]["PLZ"]
   
     calc_dist("50674", a)

这很神奇,在另一个函数中调用 distance.loc 函数似乎是个坏主意。现在我只需要遍历 200 万个样本,这有点慢但很好:)

【讨论】:

以上是关于从熊猫列中获取字符串值的主要内容,如果未能解决你的问题,请参考以下文章

从具有最低值的熊猫列中选择值

在熊猫的列中存储字符串值数组? [复制]

在给定列中拆分字符串值(熊猫)

在熊猫数据框列中查找非数字值

将字符添加到熊猫列中每个值的开头

熊猫从数据框中的一列中提取部分字符串并将其存储在一个新列中