我有一個test.csv包含 4 列的 csv 檔案
A | B | C | D
======================
aed | etge | 3r4 | pu9
frt | eide | 9h4 | sd2
jey | edlr | 8d2 | bu6
使用python我想在A列下追加B列,在C列下追加D列所以我有下面
A | C
===========
aed | 3r4
frt | 9h4
jey | 8d2
etge | pu9
eide | sd2
edlr | bu6
uj5u.com熱心網友回復:
建議為此使用熊貓。
嘗試這樣的事情:
import pandas as pd
dataFrame = pd.DataFrame({"A":["aed","etge","3r4"],
"B":["aed","etawge","3r4"],
"C":["aed","etgase","3r4"],
"D":["aed","etgqee","3r4"],})
AB = pd.concat([dataFrame["A"],dataFrame["B"]])
CD = pd.concat([dataFrame["C"],dataFrame["D"]])
final_dataFrame = pd.concat([AB,CD], axis=1)
final_dataFrame.columns=["A","C"]
我沒有使用您擁有的完全相同的資料,但這顯示了如何執行此操作。您可以使用 pandas.read_csv 讀取 csv 檔案。
編輯:如果您想直接從檔案中讀取,您首先必須更改檔案,使其沒有“=====”,所以它應該如下所示:
A | B | C | D
aed | etge | 3r4 | pu9
frt | eide | 9h4 | sd2
jey | edlr | 8d2 | bu6
完成后,執行以下操作:
# read the file. If test.csv is not in the same folder, then you have to give the complete file path.
dataFrame = pd.read_csv("test.csv", sep="|")
# remove unnecessary white spaces.
dataFrame = dataFrame.apply(lambda x: x.str.strip() if x.dtype == "object" else x)
# create a new column by combining column 0 and 1.
AB = pd.melt(dataFrame.iloc[:, [0, 1]])["value"]
# create a new column by combining column 2 and 3.
CD = pd.melt(dataFrame.iloc[:, [2, 3]])["value"]
# combine the previous two columns
final_dataFrame = pd.concat([AB, CD], axis=1)
# give them names "A" and "C"
final_dataFrame.columns = ["A", "C"]
print(final_dataFrame)
如果您不擔心可讀性,您可以像這樣組合不同的步驟:
dataFrame = pd.read_csv("file.csv", sep="|").apply(lambda x: x.str.strip() if x.dtype == "object" else x)
final_dataFrame = pd.concat([pd.melt(dataFrame.iloc[:, [0, 1]])["value"], pd.melt(dataFrame.iloc[:, [2, 3]])["value"]], axis=1)
final_dataFrame.columns = ["A", "C"]
print(final_dataFrame)
這給出了結果:
A C
0 aed 3r4
1 frt 9h4
2 jey 8d2
3 etge pu9
4 eide sd2
5 edlr bu6
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/445731.html
上一篇:將值附加到CSV中的新列
