1
通常會發生這樣的情況:數據將以包裝列的形式提供給您。舉個例子:熊貓:在csv文件中展平重複/包裹的列
CCY Decimals CCY Decimals CCY Decimals
AUD/CAD 5 EUR/CZK 4 GBP/NOK 5
AUD/CHF 5 EUR/DKK 5 GBP/NZD 5
AUD/DKK 5 EUR/GBP 5 GBP/PLN 5
AUD/JPY 3 EUR/HKD 5 GBP/SEK 5
AUD/NOK 5 EUR/HUF 3 GBP/SGD 5
...
哪些應該被解析爲列(CCY和小數),不是6的數據幀。我的問題是,實現這一目標的最習慣方式是什麼?
我本來想要像下面這樣:數據幀的
data = pd.read_csv("file.csv")
data.groupby(axis=1,by=data.columns.map(lambda s: s.replace("\..",""))).\
apply(lambda df : df.values.flatten())
當閱讀我們最終Decimals.1
列CCY
,Decimals
,CCY.1
,CSV文件..等。groupby
操作返回一個集合:
<pandas.core.groupby.DataFrameGroupBy object at 0x3a52b10>
然後我們將使用numpy功能將其扁平化。所以我們會將重複列的DataFrame轉換爲Series,然後將它們合併到一個結果DF中。
但是,這不起作用。我試過將不同的keys
參數傳遞給groupBy
,但它總是抱怨無法重新索引非唯一列。
有許多現存的問題都涉及列組的扁平化(例如"Flattening" output of group.nth in Pandas),但我找不到任何重複列的操作。