我有一个任务是根据用于创建所述DataFrame的文件在我的DataFrame中创建一个列。我可以用下面的代码来解决这个问题,但我认为有更好的方法。我敢肯定,我可以跳过创建列并将其设置为零的步骤:dfp['F'] = 0
,并可能使功能更清洁。使用函数优化设置Pandas列
你会如何优化此代码?:
import pandas as pd
import numpy as np
dfp = pd.DataFrame({'A' : [np.NaN,np.NaN,3,4,5,5,3,1,5,np.NaN],
'B' : [1,0,3,5,0,0,np.NaN,9,0,0],
'C' : ['AA1233445','A9875', 'rmacy','Idaho Rx','Ab123455','TV192837','RX','Ohio Drugs','RX12345','USA Pharma'],
'D' : [123456,123456,1234567,12345678,12345,12345,12345678,123456789,1234567,np.NaN],
'E' : ['Assign','Unassign','Assign','Ugly','Appreciate','Undo','Assign','Unicycle','Assign','Unicorn',]})
print(dfp)
file2 = r'desktop\somefolder\foo.txt'
def filename():
if 'foo' in file2.lower():
return 'foo'
elif 'bar' in file2.lower():
return 'bar'
dfp['F'] = 0
dfp['F'] = dfp['F'] = filename()
print(dfp)
PS:我通常pd.read_excel()
的功能,因此使用的文件名读取数据帧。同样使用熊猫版本0.19.2
这可能是更适合StackExchange的代码审查的社区。 –