Python智能附加

Python智能附加,python,pandas,Python,Pandas,我有一个csv文件,其中包含: Car Model Color Price Proton X70 100K Honda white 100K 我有一个数据帧: Car Color Model Perudua White Myvi 我希望将dataframe附加到csv文件中,但我下面的代码不会提供所需的输出,它不会基于列名进行附加 if not os.path.isfile('C:/U

我有一个csv文件,其中包含:

Car     Model   Color    Price
Proton  X70              100K
Honda           white    100K
我有一个数据帧:

Car       Color      Model
Perudua   White      Myvi
我希望将dataframe附加到csv文件中,但我下面的代码不会提供所需的输出,它不会基于列名进行附加

if not os.path.isfile('C:/Users/sj/Desktop/car.csv'):
    CombineTable.to_csv('C:/Users/sj/Desktop/car.csv', header='column_names',index=False)
else:
    CombineTable.to_csv('C:/Users/sj/Desktop/car.csv', header=False, mode='a',index=False)
我期望的输出是:

Car     Model   Color    Price
Proton  X70              100K
Honda           white    100K
Perudua Myvi    White
有人能帮忙吗

df1 = pd.DataFrame({'Car':['proton','honda'],'Model':['X70',''],'Color':['','White'],'Price':['100k','100k']})
df2 = pd.DataFrame({'Car':['perudua'],'Model':['Myvi'],'Color':['White']})

pd.concat([df1,df2],sort=False).reset_index()
给出这个输出

给出这个输出


如果csv与给定的csv非常相似,则需要使用sep='\t'选项卡分隔符导入它:

df = pd.read_csv('csv2.csv',sep='\t')

然后您的csv输出命令就可以正常工作。

如果您的csv看起来确实像给定的csv,那么您需要使用sep='\t'选项卡分隔符导入它:

df = pd.read_csv('csv2.csv',sep='\t')
然后您的csv输出命令工作正常。

读取csv:

cars = pd.read_csv('C:/Users/sj/Desktop/car.csv')
创建新数据帧:

new_car = pd.DataFrame([['Perudua'], ['White'], ['Myvi']], index=['Car', 'Color', 'Model']).T
新df如下所示:

    Car     Color   Model
0   Perudua White   Myvi
    Car     Model   Color   Price
0   Proton  X70     NaN     100K
1   Honda   NaN     white   100K
2   Perudua Myvi    White   NaN
组合两个数据帧:

cars.append(new_car, sort=False, ignore_index=True).sort_index()
最终结果如下所示:

    Car     Color   Model
0   Perudua White   Myvi
    Car     Model   Color   Price
0   Proton  X70     NaN     100K
1   Honda   NaN     white   100K
2   Perudua Myvi    White   NaN
注:

组合时,在末尾添加ignore_index=True和.sort_索引,这样您就可以将索引顺序设置为0、1、2等。。。 添加sort=False将不会得到错误警告。 请随意尝试删除每一个,看看最终结果如何变化。

阅读csv:

cars = pd.read_csv('C:/Users/sj/Desktop/car.csv')
创建新数据帧:

new_car = pd.DataFrame([['Perudua'], ['White'], ['Myvi']], index=['Car', 'Color', 'Model']).T
新df如下所示:

    Car     Color   Model
0   Perudua White   Myvi
    Car     Model   Color   Price
0   Proton  X70     NaN     100K
1   Honda   NaN     white   100K
2   Perudua Myvi    White   NaN
组合两个数据帧:

cars.append(new_car, sort=False, ignore_index=True).sort_index()
最终结果如下所示:

    Car     Color   Model
0   Perudua White   Myvi
    Car     Model   Color   Price
0   Proton  X70     NaN     100K
1   Honda   NaN     white   100K
2   Perudua Myvi    White   NaN
注:

组合时,在末尾添加ignore_index=True和.sort_索引,这样您就可以将索引顺序设置为0、1、2等。。。 添加sort=False将不会得到错误警告。
请随意尝试删除每一个,看看最终结果如何变化。

我认为您必须首先从csv加载表,然后将其与其他数据帧连接起来。为此,您可以使用以下功能:

df_from_csv = pd.read_csv('path')
CombineTable = pd.concat((df_from_csv, second_df), axis = 0)
CombineTable.to_csv('path')

我认为您必须首先从csv加载表,然后将其与其他数据帧连接起来。为此,您可以使用以下功能:

df_from_csv = pd.read_csv('path')
CombineTable = pd.concat((df_from_csv, second_df), axis = 0)
CombineTable.to_csv('path')
请尝试以下代码:

df_csv = pd.DataFrame({'Car':['proton','honda'],'Model':['X70',''],'Color':['','White'],'Price':['100k','100k']})
df = pd.DataFrame({'Car':['perudua'],'Model':['Myvi'],'Color':['White']})

df_new = pd.concat([df_csv, df], sort=False).reset_index().drop(columns=['index'])
df_new.to_csv('yourfile.csv')
照你说的做:

       Car Model  Color Price
0   proton   X70         100k
1    honda        White  100k
2  perudua  Myvi  White   NaN
请尝试以下代码:

df_csv = pd.DataFrame({'Car':['proton','honda'],'Model':['X70',''],'Color':['','White'],'Price':['100k','100k']})
df = pd.DataFrame({'Car':['perudua'],'Model':['Myvi'],'Color':['White']})

df_new = pd.concat([df_csv, df], sort=False).reset_index().drop(columns=['index'])
df_new.to_csv('yourfile.csv')
照你说的做:

       Car Model  Color Price
0   proton   X70         100k
1    honda        White  100k
2  perudua  Myvi  White   NaN

您可以尝试以下代码,以获得所需的输出:

import numpy as np
csvcar = pd.read_csv('C:\Users\xxxxxx\Desktop\car.csv')
dfcar = pd.DataFrame([['Perudua','White','Myvi']], columns =['Car', 'Color', 'Model'])
df = pd.concat((csvcar, dfcar), ignore_index=True)
df1 = df.replace(np.nan, '', regex=True)
以上代码的输出如下:

    Car     Color   Model   Price
0   proton          X70     100k
1   honda   White           100k
2   Perudua White   Myvi    
然后您可以将其导出或替换为csv文件:

df1.to_csv('C:\Users\xxxxxx\Desktop\car.csv')

您可以尝试以下代码,以获得所需的输出:

import numpy as np
csvcar = pd.read_csv('C:\Users\xxxxxx\Desktop\car.csv')
dfcar = pd.DataFrame([['Perudua','White','Myvi']], columns =['Car', 'Color', 'Model'])
df = pd.concat((csvcar, dfcar), ignore_index=True)
df1 = df.replace(np.nan, '', regex=True)
以上代码的输出如下:

    Car     Color   Model   Price
0   proton          X70     100k
1   honda   White           100k
2   Perudua White   Myvi    
然后您可以将其导出或替换为csv文件:

df1.to_csv('C:\Users\xxxxxx\Desktop\car.csv')

csv中的分隔符是什么?我看到一些值丢失,您如何理解值丢失的时间?csv中的分隔符是什么?我看到一些值丢失了,您如何理解何时丢失了一个值?