我有我的算法和代码。它可以工作,但将数据帧写入输出CSV文件中的整个列。我想将数据帧写入只有列等于某个值的行。这是在第6行。其余的逻辑,语法似乎很好。我研究了一些公平的选项,包括sort_values(),apply(),map(),lambda,写if语句。这似乎是一个简单的解决方案,但我无法将数据帧写入特定的行和列组合。如果之前已经提出过这个问题,请参考解决方案。
谢谢。
df_Working_File = pd.read_csv('Working\WF.csv')
df_GSTRemoved = pd.read_csv('Working\GSTRemoved.csv')
df_OriginalKey = df_GSTRemoved.apply(lambda x:x['Origin'] + x['Destination'],1)
df_Key = df_Working_File.apply(lambda x:x['Origin'] + x['Destination'],1)
df_Charge_Per_Item = df_GSTRemoved['500g']
df_Working_File.apply(df_Charge_Per_Item, df_Working_File['Origin'] == 'GL')
df_Working_File.to_csv("Working/writetoCSV.csv", index=False)
答案 0 :(得分:1)
您可以使用boolean vactors forexample:
编写数据框的子集# boolean vector:
selector = df_Working_File['Origin'] == 'GL'
# write only rows to csv where the vector is true:
df_Working_File[selector].to_csv("Working/writetoCSV.csv", index=False)
如果您还想只写某些列,可以使用:
df_Working_File[selector][['col1', 'col2']].to_csv("Working/writetoCSV.csv", index=False)
顺便说一句,你可以像这样连接列:
df_OriginalKey = df_GSTRemoved.Origin + df_GSTRemoved.Destination
如果您只想更改/编辑符合特定条件的行,可以执行以下操作:
selector = df_Working_File['Origin'] == 'GL'
df_Working_File.ix[selector, 'column_to_change'] = 'changed value'
我希望这会有所帮助。