擅长:python、mysql、java
<p>有一种方法:</p>
<pre><code>import pandas as pd
df = pd.DataFrame([['2015-01-31', 10, 10, 'we', 10],
['2015-02-01', 2, 3, 'jk', '22 and 23 and 24'],
['2015-02-02', 10, 60, 'nm', 280],
['2015-02-03', 10, 100, 'oi', 250]],
columns=['Index_Date', 'A', 'B', 'C', 'D'])
df.loc[df.D.astype(str).str.contains('and').fillna(False), 'D'] = df.D.str.split('and')
res = df.set_index(['Index_Date', 'A', 'B', 'C'])['D'].apply(pd.Series).stack().reset_index()
res = res.rename(columns={0: 'D'})
res.D = res.D.astype(int)
res = res[['Index_Date', 'A', 'B', 'C', 'D']]
# Index_Date A B C D
# 0 2015-01-31 10 10 we 10
# 1 2015-02-01 2 3 jk 22
# 2 2015-02-01 2 3 jk 23
# 3 2015-02-01 2 3 jk 24
# 4 2015-02-02 10 60 nm 280
# 5 2015-02-03 10 100 oi 250
</code></pre>