使用另一个列熊猫的值填充两个新列

时间:2019-11-16 22:35:10

标签: python pandas

我正在一个项目上,试图创建一个函数来读取DataFrame对象中特定行的一列中的值。基于该值,我想为DataFrame上的两个新列创建两个新值。

此处提供的答案:adding multiple columns to pandas simultaneously是我一直试图复制但没有成功的内容。这是我正在使用的东西:

#name of the column is "query_str"
table["query_str"][0:5]

0    7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401
1    7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401
2    7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401
3         25+Golddigger+Ln,+Oroville+CA+95966
4    Crystal+Ranch+Rd,+Feather+Falls+CA+95940

这是我创建的函数,用于尝试在表DataFrame中创建两个新列“ lat”和“ long”:

def create_lat_long(tbl, col):
    for x in tbl[col]:
        tbl[["lat", "long"]] = pd.DataFrame([[x[0],x[1]]], index=tbl.index)

    return(tbl)

table = create_lat_long(table, "query_str")

table[["query_str", "lat", "long"]][0:5]

但是我得到一些奇怪的输出(对格式感到抱歉):

query_str   lat long
0   7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401    1   7
1   7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401    1   7
2   7900+Orcutt+Rd,+San+Luis+Obispo+CA+93401    1   7
3   25+Golddigger+Ln,+Oroville+CA+95966 1   7
4   Crystal+Ranch+Rd,+Feather+Falls+CA+95940    1   7

我希望“ lat”和“ long”值为:

7,9
7,9
7,9
2,5
C,r

我对该流程的运作方式有何误解?我想确保在调用API提供实际的纬度和经度数据之前正确执行此操作。

0 个答案:

没有答案