我有一个包含以下内容的csv文件:
Car Model Color Price
Proton X70 100K
Honda white 100K
我有一个数据框:
Car Color Model
Perudua White Myvi
我希望将数据帧附加到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
任何人都可以帮忙吗?
答案 0 :(得分:1)
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()
提供此输出
答案 1 :(得分:1)
如果您的csv确实看起来像给定的,那么您需要使用sep='\t'
标签分隔符将其导入:
df = pd.read_csv('csv2.csv',sep='\t')
然后您的csv输出命令可以正常工作。
答案 2 :(得分:1)
阅读csv:
cars = pd.read_csv('C:/Users/sj/Desktop/car.csv')
创建新的DataFrame:
new_car = pd.DataFrame([['Perudua'], ['White'], ['Myvi']], index=['Car', 'Color', 'Model']).T
新df如下:
Car Color Model
0 Perudua White Myvi
结合两个数据框:
cars.append(new_car, sort=False, ignore_index=True).sort_index()
最终结果如下:
Car Model Color Price
0 Proton X70 NaN 100K
1 Honda NaN white 100K
2 Perudua Myvi White NaN
注意:
.sort_index()
是为了使索引顺序可以为0, 1, 2
等... sort=False
不会收到错误警告。随时尝试删除每一项,以查看最终结果如何变化。
答案 3 :(得分:1)
我认为您必须先从csv加载表,然后将其与其他数据框连接。为此,您可以使用pandas.concat函数:
df_from_csv = pd.read_csv('path')
CombineTable = pd.concat((df_from_csv, second_df), axis = 0)
CombineTable.to_csv('path')
答案 4 :(得分:0)
尝试此代码:
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
答案 5 :(得分:0)
您可以尝试下面的代码来提供所需的输出:
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')