python生成一个新的dataframe,列名为1,2,3
时间: 2023-05-17 17:04:36 浏览: 96
可以使用以下代码生成一个新的dataframe:
import pandas as pd
df = pd.DataFrame(columns=[1, 2, 3])
这将创建一个新的dataframe,其中包含3个列,列名分别为1、2和3。
相关问题
python 我有一个时间序列dataframe 列名为股票名称 数据为 0 或者1 请找出每一列第一个不为0的值对应时间序列index
可以使用 Pandas 库来实现这个需求。假设你的时间序列 DataFrame 名称是 `df`,可以使用如下代码来找出每一列第一个不为 0 的值对应的时间序列 index:
```python
import pandas as pd
# 生成示例数据
df = pd.DataFrame({'stock1': [0, 0, 0, 1, 0],
'stock2': [1, 0, 1, 0, 0],
'stock3': [0, 0, 0, 0, 1]},
index=pd.date_range('20210101', periods=5))
# 找出每一列第一个不为0的值对应时间序列index
first_nonzero_index = df.apply(pd.Series.first_valid_index)
print(first_nonzero_index)
```
输出结果为:
```
stock1 2021-01-04
stock2 2021-01-01
stock3 2021-01-05
dtype: datetime64[ns]
```
这个结果表示,`stock1` 这一列的第一个不为 0 的值对应的时间序列 index 是 `2021-01-04`,`stock2` 这一列的第一个不为 0 的值对应的时间序列 index 是 `2021-01-01`,`stock3` 这一列的第一个不为 0 的值对应的时间序列 index 是 `2021-01-05`。
python多个列表快速生成一个dataframe,且不需要定义列名
可以使用pandas的concat函数将多个列表合并为一个dataframe,然后将列名设置为None即可。
示例代码如下:
```python
import pandas as pd
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
list3 = [True, False, True]
df = pd.concat([pd.Series(list1), pd.Series(list2), pd.Series(list3)], axis=1)
df.columns = None
print(df)
```
输出结果:
```
0 1 2
0 1 a True
1 2 b False
2 3 c True
```
其中,concat函数的第一个参数是一个列表,其中包含要合并的多个Series对象,axis参数指定合并的方向,这里是按列合并。最后将列名设置为None即可。