【问题标题】:check if the csv file exists and do the condition?检查csv文件是否存在并满足条件?
【发布时间】:2020-12-16 23:28:53
【问题描述】:

您好,我正在处理 csv 文件,我有一个数据,我想将这些数据附加到 csv 文件中。但首先我想检查 csv 文件是否存在,如果 TRUE 然后打开 csv 文件并将数据附加到 csv 文件并保存它,如果不只是创建一个 DataFrame 并使用这些数据并保存它。 注意:我有一个 csv 文件,我想将数据样本附加到我的 csv 文件中 提前致谢。

这是我的尝试。

#sample of data
ID = 5
img_Latitude = 38786454
img_Longitude = 1118468

meta_lat = 45778 
meta_long = 886556 

#create a function
def create_csv( ID, img_Latitude, img_Longitude,meta_lat, meta_long):
#check if the file is exists, if True
    if os.path.isfile('C:/My/Path/compare_coordinates.csv'): 
#read the csv file  
        df = pd.read_csv('compare_coordinates.csv')
#make pd.series
        data = pd.Series([ID, img_Latitude, img_Longitude, meta_lat, meta_long], 
                 index=['ID', 'img_Latitude', 'img_Longitude', 'meta_lat','meta_long'])
#append the data to df
        df.append(data, ignore_index=True)
        
    else:
        data = [ID, img_Latitude, img_Longitude, meta_lat, meta_long]
        columns = ['ID', 'img_Latitude', 'img_Longitude', 'meta_lat','meta_long']
        df = pd.DataFrame(data, columns).T
    df.to_csv('C:/My/Path/compare_coordinates.csv', index=False)



【问题讨论】:

  • 错误是什么?
  • 查看我的更新.. @Mike67

标签: python pandas csv operating-system


【解决方案1】:

要获得所需的值,必须将其保存在变量中,以便为该行 df.append(data, ignore_index = True)编辑为df = df.append(data, ignore_index = True),获取文件的值是否存在如下代码:

def create_csv( ID, img_Latitude, img_Longitude,meta_lat, meta_long):
    Path = os.path.isfile('My/path/compare_coordinates1.csv')
    if Path==True:
        df = pd.read_csv('compare_coordinates1.csv')
        data = pd.Series([ID, img_Latitude, img_Longitude, meta_lat, meta_long], 
                         index=['ID', 'img_Latitude', 'img_Longitude', 'meta_lat','meta_long'])
        df = df.append(data, ignore_index=True)
        
    else:
        data = [ID, img_Latitude, img_Longitude, meta_lat, meta_long]
        columns = ['ID', 'img_Latitude', 'img_Longitude', 'meta_lat','meta_long']
        df = pd.DataFrame(data, columns).T
    df.to_csv('My/path/compare_coordinates1.csv', index=False)

【讨论】:

    【解决方案2】:

    df.append(data, ignore_index = True) 行需要是:

    df = df.append(data, ignore_index = True)
    

    这是因为 DatFrame.append 返回一个带有附加行的新 DF,它不会就地附加:

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.append.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2018-05-21
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多