如何在pandas数据帧中获得最佳/最大列值?具体来说,我希望获得字符串长度的 min / max值,并根据这些值采取一些操作。
我可以为单个列执行此操作,但我宁愿遍历所有必需的列,而不是完成一次性任务。
这是我的一次性代码,但有必要有更好的方法,IMO:
cols = ['STORE_NO', 'SKU']
for name in cols:
inventory_df[name] = inventory_df[name].astype(str)
long_store = inventory_df.STORE_NO.map(len).max()
small_store = inventory_df.STORE_NO.map(len).min()
if long_store == small_store:
print('Store number values do not appear truncated')
else:
print('Some store number values may be truncated')
long_sku = inventory_df.SKU.map(len).max()
small_sku = inventory_df.SKU.map(len).min()
if long_sku == small_sku:
print('SKU values do not appear truncated')
else:
print('Some SKU values may be truncated')
答案 0 :(得分:2)
在DataFrame上使用.columns
返回所有列的列表。然后,您可以遍历此列表以完成代码示例中的内容。
for name in inventory_df.columns:
long = inventory_df[name].astype(str).map(len).max()
small = inventory_df[name].astype(str).map(len).min()
if long == small:
print('%s values do not appear truncated' % name)
else:
print('Some %s values may be truncated' % name)
如果您不熟悉,%s
是字符串格式化方法,可以打印出name
中存储的字符串变量。