python - 如何使用python拆分Dataframe中的值
问题描述
我的数据框:
df
Object quantity
A 3
B 4
C 10
D 11
我想要的结果:
df
Object quantity
A 3
B 4
C 4
C 4
C 2
D 4
D 4
D 3
我的目标是拆分存储在 column2“数量”中的值,使其应为 4 或小于 4。
我可以使用哪种方法来解决这个问题?任何建议将不胜感激。
解决方案
这可行,但就熊猫而言,它既不漂亮也不快:
df = pd.DataFrame({'idx': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
'quantity': [1., 2., 3., 4., 5., 6., 7.]})
df['factor'] = df.quantity // 4.
df['modulo'] = df.quantity % 4.
res = pd.DataFrame({'idx': [], 'quantity': []})
for idx, row in df.iterrows():
for idxx in range(int(row.factor)):
res = res.append({'idx': row.idx, 'quantity': 4.},
ignore_index=True)
if row.modulo > 0:
res = res.append({'idx': row.idx, 'quantity': row.modulo},
ignore_index=True)
In [24]: df
Out[24]:
idx quantity
0 A 1.0
1 B 2.0
2 C 3.0
3 D 4.0
4 E 5.0
5 F 6.0
6 G 7.0
In [22]: res
Out[22]:
idx quantity
0 A 1.0
1 B 2.0
2 C 3.0
3 D 4.0
4 E 4.0
5 E 1.0
6 F 4.0
7 F 2.0
8 G 4.0
9 G 3.0
推荐阅读
- python - TypeError:“存储”对象不可迭代
- java - 在Java中生成随机数数组
- forms - 在 ReactNative 中构建表单时,Formik 或 React Hook Form 哪个更好?
- java - 如何在java中正确使用函数
- pandas - Marge 后续行 pandas
- javascript - 通配符 Firebase 查询
- c# - AForge.Video / Materialskin 反复导致stackoverflow
- julia - 如何避免在 Julia 中使用 NLsolve 解决问题的过程中采用负幂函数基数?
- php - PHP websocket - 无法构建框架
- delphi - 如何使用 Delphi FMX 通讯簿组件获取手机号码