【问题标题】:How to modify CSV format data using pandas in Jupyter notebook?如何在 Jupyter notebook 中使用 pandas 修改 CSV 格式数据?
【发布时间】:2020-05-02 01:33:11
【问题描述】:

我正在使用 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")


我尝试使用以下代码修改data set 的“大小”列以删除字符“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

请告诉一个正确的方法。

【问题讨论】:

  • 您只是想提取数字吗?如果是这样,只需使用一些正则表达式

标签: python pandas jupyter-notebook


【解决方案1】:

我创建了一个示例数据框来显示结果:

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

【讨论】:

    【解决方案2】:

    您好,您也可以试试这个:

    import pandas as pd
    list1= ['20M','9M','10K','10']
    dataframe1=pd.DataFrame(data=list1,columns=['Size'])
    
    for i, s in enumerate(dataframe1['Size']):
        if s[len(s)-1]=='M':
            dataframe1['Col1'][i]=dataframe1['Size'][i].replace('M',"")
        if s[len(s)-1]=='K':
            dataframe1['Col1'][i]=dataframe1['Size'][i].replace('K',"")
    
    
    dataframe1
    

    您将获得预期的输出。

    注意:您可以根据自己的要求添加if条件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-21
      • 2020-06-09
      • 1970-01-01
      • 2020-05-28
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      • 2019-09-04
      相关资源
      最近更新 更多