python - 如何在 Jupyter notebook 中使用 pandas 修改 CSV 格式数据?
问题描述
我正在使用 pandas 在 Jupyter Notebook 中将 CSV 文件读入名为“data”的变量中
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
data = pd.read_csv("C:/Users/hp/Desktop/dv project/googleplaystorecleaned.csv")
我尝试使用以下代码修改数据集的“大小”列以删除字符“M”和“k”
for i in range(len(data['Size'])):
data['Size'][i]=str(data['Size'][i])
data['Size'][i]=data['Size'][i].replace('M','')
data['Size'][i]=data['Size'][i].replace('k','')
data['Size'][i]=data['Size'][i].replace('Varies with device','')
data['Size'][i]=float(data['Size'][i])
print(data['Size'])
该代码似乎仅部分适用于数据集,因为我得到以下输出
0 19
1 14
2 8.7
3 25
4 2.8
...
10836 53M
10837 3.6M
10838 9.5M
10839 Varies with device
10840 19M
Name: Size, Length: 10829, dtype: object
请告诉一个正确的方法。
解决方案
我创建了一个示例数据框来显示结果:
df = pd.DataFrame({'A': [1,2,1], 'B': [3,4,3], 'Size': ['Ma2','kb3','3l Varies with device po']})
for i, v in enumerate(df['Size'].values):
v = v.replace('M', '')
v = v.replace('k', '')
v = v.replace('Varies with device', '')
df['Size'].values[i] = v
print(df)
前 :
A B Size
0 1 3 Mfoobar1
1 2 4 kfoobar2
2 1 3 Varies with devicefoobar3
后 :
A B Size
0 1 3 foobar1
1 2 4 foobar2
2 1 3 foobar3
推荐阅读
- node.js - 如何删除/添加由于重命名文件夹而被删除/未跟踪的阶段的文件
- python - 在 django 中无法访问 html 文件 url
- vba - 程序在 if 语句之前关闭 (CATIA VBA)
- powerbi - Power BI:如何计算源表中值的出现?
- python - 如何使用 Div 和 Script 标签在 HTML 中渲染两个或多个散景图?
- react-native - Webview&redabilitywebview 在 android 中工作正常而不是在 ios 中反应原生
- heroku - Heroku 自动对我的数据库进行维护,现在我的应用程序无法连接
- python - 使用 OpenCV 和 Python 提取楼层布局和阈值
- git - Git ignore ignoring too many things
- selenium - 如果元素在硒的 IF 中不可见,如何移动到 ELSE 条件