【发布时间】:2021-10-15 19:59:43
【问题描述】:
目前我有一个如下所示的数据框:
| name | value | position | length |
|---|---|---|---|
| table | 5.0 | 1234567 | .25 |
| chair | 8.0 | 789012 | 5 |
| couch | 6.0 | 345678 | 5 |
| bed | 5.3 | 1901234 | .05 |
我需要做的是首先编辑位置列,在十位后添加一个“+”,所以第一个数字应该是12345+67
我想我必须先分解位置中的每个数字,然后测量长度,最后加上“+”号,加上值的长度 - 2?
添加“+”号会导致它在 Excel 中左对齐,所以我需要确保它右对齐。
我尝试使用df = df.style.set_properties(subset=["position"], **{'text-align': 'right'})
但这不起作用,因为我似乎需要具有相似名称的列。
还有什么方法可以完成这两项工作?
先谢谢你了。
更新
我能够将位置列分成两列,并添加带有“+”符号的第三列。然后我合并了所有 3 个新列并替换了位置列。最后使用以下命令删除了新列:
df['col1']= df['position'].astype(str).str[:-2]
df['col2'] = df['col'].str[:-2]
df['col3'] = df['col'].str[-2:]
df['col4'] = '+'
df['position'] = df[['col1','col3','col2']].apply(lambda row: ''.join(row.values.astype(str)), axis=1)
df = df.drop(["col", "col1", "col2", "col3", "col4"], axis=1)
我唯一需要做的就是能够将新值向右对齐,因为在 excel 中,当我添加“+”号时它会向左对齐
【问题讨论】:
-
tens place是什么?dtype是什么?整数还是字符串? -
十位是位置列下数字的位值,所以第一个值1234567,然后6在十位,符号将在5和6之间。所以下一个值I需要在 0 和 1 之间插入符号。dtype 是 int,但添加“+”符号会将其更改为我相信的字符串?
标签: python excel dataframe openpyxl excel-tables