我正在重写我的一些代码,并觉得必须有更好的更动态的方式来执行下面的操作。目前正如您所看到的,我正在根据行数创建条件并从中添加值。不过,我不想为多个值制作静态条件if row_count == 3:
if row_count == 4:
等等。我认为肯定有更高效的方法来实现这一点。任何指针将不胜感激。根据熊猫数据帧的行数动态添加字典值
for root, dirs, files in os.walk(main):
filters = '*specificname*.csv'
for filename in fnmatch.filter(files, filters):
df = pd.read_csv(os.path.join(root, filename),error_bad_lines=False)
row_count = len(df.index)
device_dic = collections.defaultdict()
if row_count == 2:
device_dic[df.iloc[0][1]] = {}
device_dic[df.iloc[0][1]]['item1'] = df.iloc[0][2]
device_dic[df.iloc[0][1]]['item2'] = df.iloc[0][3]
device_dic[df.iloc[1][1]] = {}
device_dic[df.iloc[1][1]]['item1'] = df.iloc[1][2]
device_dic[df.iloc[1][1]]['item2'] = df.iloc[1][3]
for key in device_dic.iterkeys():
device.append(key)
什么用等于行键的字典计算要处理和值等于处理功能。多个键可以映射到相同的处理功能,您可以轻松地添加其他案例。 –
@PaulJoireman您能否用一个例子来阐述一下? – iNoob