我想创建一个新列,从该列中读取文件名:df ['Filename']应用np.genfromtext,然后将结果数组放入一个名为Scan的新列中。
d = {'Filename':['G924310X.txt','G924330X.txt','G924340X.txt'],
'Longitude':[92.4,92.4,92.4],
'Latitude':[-31.0,-33.0,-34.0]}
df = pd.DataFrame(data = d)
def f(x):
return np.genfromtxt(x , delimiter=', ')
df['Scan'] = df.apply(lambda x: f(df['Filename']), axis = 1)
我收到此错误, TypeError :(“无法将'bytes'对象隐式转换为str','发生在索引0')
有没有办法做到这一点?
答案 0 :(得分:0)
我相信你应该改变
df['Scan'] = df.apply(lambda x: f(df['Filename']), axis = 1)
为
df['Scan'] = df.apply(lambda x: f(x['Filename'].item()), axis = 1)
也许
df['Scan'] = df.Filename.apply(f, axis = 1)
否则,apply
会始终为每一行调用整个系列的函数。 .item()
函数只是弹出系列中的唯一元素。